Получение ошибки несвязанной переменной или конструктора

Код работает нормально в онлайн-версии Standard ML Нью-Джерси v110.78, но показывает ошибку в Unix SNL/NJ .93. вот код

fun check( num:int ) = 

 let
   val x = List.tabulate(num, fn x => x*x)
   val k =tl(x)
   val y = List.filter( fn z => num mod z = 0)k
   val ans = List.last(y)
   val final = Real.ceil(Math.sqrt (Real.fromInt ans))
 in
 final
 end;
val nu = check(8)

Ошибки - несвязанный конструктор или переменная в таблицах, фильтрах, last, ceil и несвязанных структурах для Math.

1 ответ

Решение

Похоже, ваша стандартная библиотека в этом SML/NJ .93 не настроена должным образом. Если вы прочитали вопросы и ответы по Stackru, как установить версию SML-New jersey .93? вы увидите, что

Версия SMLNJ 0.93 была выпущена в 1993 году. Она доступна для исторических целей. [...] Он никогда не тестировался ни на одной версии Microsoft Windows [...] Весьма маловероятно, что он будет работать под Windows [...]

Я бы не рекомендовал использовать эту версию, если вы не готовы бороться с последствиями запуска программного обеспечения, которое не было разработано для операционных систем нашего времени, будь то Windows или что-то еще.

Другие вопросы по тегам