Функция, которая применяет свой аргумент к себе?

Рассмотрим следующую функцию 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?)

7
задан Ismail Badawi 6 February 2012 в 15:29
поделиться