Haskell использует метод оценки по требованию в качестве стандартной (и действительно единственной) стратегии оценки.
Итак, вы попросили две вещи: по имени и современность. Ну, Haskell - это чистый язык, и в чистом языке вызов по имени и вызов по требованию - это семантически одно и то же, или, точнее, они всегда имеют одинаковый результат, единственное отличие состоит в том, что вызов по требованию обычно быстрее и в худшем случае только постоянный фактор медленнее, чем по имени. И Хаскель, безусловно, является современным языком: ему всего 23 года, и по многим своим характеристикам он на 10 лет опережает многие языки, которые были созданы совсем недавно.
Другая вещь, о которой вы спрашивали, это вызов по ссылке. Опять же, в чистом языке вызов по значению и вызов по ссылке - это одно и то же, за исключением того, что последний работает быстрее. (Вот почему, хотя большинство функциональных языков обычно описываются как вызов по значению, они фактически реализуют вызов по ссылке.)
Теперь, вызов по имени (и по требованию добавочного номера) не то же самое, что вызов по значению (и по обращению внутреннего номера), потому что вызов -by-name может возвращать результат в случаях, когда вызов по значению не завершается.
Однако во всех случаях, когда вызов по значению или вызов по ссылке заканчивается, на чистом языке, вызов по значению, вызов по ссылке, вызов по имени и вызов по необходимости это одно и то же. И в тех случаях, когда они не одно и то же, вызов по имени и вызов по необходимости в некотором смысле «лучше», потому что они дают вам ответ в случаях, когда вызов по значению и вызов по ссылке в основном попадал бы в бесконечный цикл.
Эрго, Хаскелл - твой ответ. Хотя, вероятно, не тот, который вы искали: -)