Skip to content

Instantly share code, notes, and snippets.

@aurelijusb
Created December 8, 2015 20:12
Show Gist options
  • Save aurelijusb/f7cb8eeb85b57a0f605d to your computer and use it in GitHub Desktop.
Save aurelijusb/f7cb8eeb85b57a0f605d to your computer and use it in GitHub Desktop.
Lazy evealuation as callback

Visuals for prezentation: Being lazy in practice

<html>
<head>
<title>Callback</title>
</head>
<input id="eur" size="5">Eur =
<input id="lt" size="5">Lt
<div id="debug"></div>
<script>
var eur = document.getElementById('eur');
var lt = document.getElementById('lt');
var debug = document.getElementById('debug');
</script>
<script>
var i = 0;
function eur2lt(eur) {
debug.innerHTML = (i++) + ': Converting: ' + eur + "<br/>" + debug.innerHTML;
return eur / 3.4528;
}
convert = function() {
lt.value = eur2lt(eur.value);
};
</script>
<script>
// Lazy evaluation. Only when needed
eur.onkeyup = function() {
convert();
};
</script>
</html>
<html>
<head>
<title>Timer</title>
</head>
<input id="eur" size="5">Eur =
<input id="lt" size="5">Lt
<div id="debug"></div>
<script>
var eur = document.getElementById('eur');
var lt = document.getElementById('lt');
var debug = document.getElementById('debug');
</script>
<script>
var i = 0;
function eur2lt(eur) {
debug.innerHTML = (i++) + ': Converting: ' + eur + "<br/>" + debug.innerHTML;
return eur / 3.4528;
}
convert = function() {
lt.value = eur2lt(eur.value);
};
</script>
<script>
// Lazy evaluation. Only when needed
loop = function() {
convert();
setTimeout(loop, 500);
};
loop();
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment