Мне нужно создать функцию, которая отображает каждый элемент из набора строк. Я сделал следующее:Ошибка синтаксиса OCaml в функции
module S = Set.Make(String);;
module P = Pervasives;;
let write x = (
P.print_string("{"); let first = true;
S.iter (fun str -> (if first then() else P.print_string(","); P.print_string(str))) x;
P.print_string("}");
P.print_newline
);;
^
В конце программы (там, где я поместил этот знак) оказывается у меня есть ошибка: ошибка синтаксиса: оператор ожидаемая. Пожалуйста, помогите мне решить эту проблему.
Спасибо! Я только начал использовать oCaml в своем университете, поэтому я полный аутсайдер. Есть ли способ, которым я могу выполнить блок кода только в первом элементе набора? – Andrew
Одним из способов, которым может быть хороший стиль, может быть сложение поверх набора, а не итерация. Сгиб позволяет вам переносить состояние (это то, что вы хотите сделать). –
Я написал код, используя fold, а не iter, который работает так, как я этого хотел. Моя единственная проблема в том, что упражнение, которое я пытаюсь решить, особенно просит меня использовать iter. Я могу решить его с помощью iter, но я покажу его как: {string1, string2,}. У меня будет дополнительная запятая перед скобкой. – Andrew