От чтения:OCaml имена аргументов
Этикетки для аргументов часто совпадают с именами переменных для их. OCaml обеспечивает сокращение для этого случая. Ниже приведены эквивалентны:
let f ~name1:name2 ~name2:name2 = name1+name2 let f ~name1 ~name2 = name1 + name2
Когда я кладу в первой строке я получаю эту ошибку
Error: Unbound value name1
Hint: Did you mean name2?
Я не понимаю, как они эквивалентны, если первая строка не действительная функция.
Переменная 'name1' в RHS' = 'в вашей первой строке не определена. Я думаю, что это опечатка в ~ name1: name2. Первая строка должна быть разрешена f ~ name1: name1 ~ name2: name2 = name1 + name2 –
Это с http://www.cs.ell.com/courses/cs3110/2015fa/l/02-fun/rec.html , Если у вас есть этот курс, вы должны попросить TA исправить его. – camlspotter
@TrungTa Вы должны опубликовать это как ответ, а не комментарий. – dcorking