Как создать пустую среду, представленную функцией
Я наткнулся на эту проблему в Интернете, которая показалась мне интересной, у нее было достойное объяснение, но я был озадачен решением. Так дано
type 'a fenv = name -> 'a
создать значение типа
'a fenv
который был бы нашим пустым env. Я думал, что это что-то вроде следующего
exception NotFound of name
val empty = fn name => raise NotFound name
Где он может вернуть исключение для имени Notfound, но я могу ошибаться, потому что продолжаю получать
Type clash: expression of type
'a alist -> 'a alist alist
cannot have type
'a alist alist
Toplevel input:
val (_: 'a fenv) = empty
Unbound type constructor: fenv
Извините, если это просто, но все еще ново в sml. Может ли кто-нибудь объяснить, как мне поступить с решением?
Спасибо
1 ответ
Как создать пустую среду, представленную функцией
Вы могли бы сделать:
type name = string
exception NotFound of name
fun empty name = raise NotFound name
Я могу делать это неправильно, потому что я продолжаю получать
Type clash: expression of type 'a alist -> 'a alist alist cannot have type 'a alist alist
Вы понимаете, что в вашем коде ничего не упоминается об алисте, верно? Возможно, вы либо используете REPL с устаревшим определением для type 'a fenv
или ваш файл содержит несколько определений, одно из которых включает в себя "alist", а другое - "fenv".