Reader View Templates example
https://github.com/eu81273/jsfiddle-console
by dimitrs_papadimitriou
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
<script src="https://code.jquery.com/jquery-3.4.0.js"></script>
JavaScript
var Reader = (expr) => ({
expr: expr,
map: f => Reader (env=>f(Reader (expr).run(env))) ,
run: env => expr(env),
});
const titleViewTemplate = Reader(({ firstName, lastName }) => `<div>${firstName} - ${lastName} </div>` )
var titleView = titleViewTemplate.run({firstName:"dimitris", lastName:"papadim"});
console.log(titleView);//<div>dimitris - papadim </div>
var addToSpan = titleViewTemplate.map( x=>`<span>${x}</span>`).run({firstName:"dimitris", lastName:"papadim"});
console.log(addToSpan); //<span><div>dimitris - papadim </div></span>