Рассмотрим следующую функцию SML:
fn x => x x
Это вызывает следующую ошибку (Standard ML of New Jersey v110.72):
stdIn:1.9-1.12 Error: operator is not a function [circularity]
operator: 'Z
in expression:
x x
Я могу понять, почему это не 'не разрешено - во-первых, я не совсем уверен, как записать его тип - но это не совсем бессмысленно; например, я мог бы передать ему функцию идентификации и вернуть ее.
Есть ли название для этой функции? (Есть ли способ выразить это в SML?)