Стандартная функция ML Foldl/Foldr с оператором умножения?

Как правильно использовать оператор умножения для Standard ML (SMLNJ) для функций foldr и foldl?

Использование foldr (op *) 1 [1,2,3]; дает ошибку

Standard ML of New Jersey v110.78 [построено: четверг, 31 августа, 03:45:42 2017]

  • stdIn:1.12 Ошибка: непревзойденный закрытый комментарий
  • stdIn: 1.9-1.18 Ошибка: синтаксическая ошибка: удаление OP INT LBRACKET

Похоже, что * имеет другие перегрузки.


person Eugene    schedule 24.10.2020    source источник


Ответы (1)


Пробел обычно не имеет значения для SMLNJ. Но для операции умножения (звездочка) да.

Убедитесь, что между звездочкой и закрывающей скобкой * ) есть пробел, иначе он будет интерпретирован как неоткрытый комментарий *).

foldr (op * ) 1 [1,2,3];

person Eugene    schedule 25.10.2020