2016.12.29 07:37
leniwe oraz w języku z zachłanną ewaluacją
Do wczoraj wierzyłem, że w języku z zachłanną ewaluacją nie da się napisać funkcji, która leniwie zewaluuje swoje argumenty. Na przykład prawdziwie leniwego "oraz" - takiego, który nie zewaluuje drugiego argumentu jeśli pierwszy jest false. Ale wczoraj przyszedł mi do głowy taki pomysł:
function oraz(a, b) {
if (a()) if (b()) return true;
return false;
}
if (oraz(
function() {
return prompt('login') == 'mirek';
}, function () {
return prompt('hasło') == '123';
}
)) {
alert('wpuszczam');
} else {
alert('nie wpuszczam');
}
komentarze:
powrót na stronę główną
RSS