Я новичок в OCaml и пытаюсь узнать, как обновить словарь и справиться с if/else условностями.
Я написал следующий код, чтобы проверить, есть ли в словаре какой-то ключ. Если нет, добавьте значение по умолчанию для этого ключа. Наконец распечатайте его.Обновление словаря OCaml
module MyUsers = Map.Make(String)
let myGraph = MyUsers.empty;;
let myGraph = MyUsers.add "test" "preset" myGraph in
try
let mapped = MyUsers.find "test" myGraph
with
Not_found -> let myGraph = MyUsers.add "test" "default" myGraph in
Printf.printf "value for the key is now %s\n" (MyUsers.find "test" myGraph)
Сообщение об ошибке У меня сейчас syntax error for line 6: with
Что здесь не так? Также, когда использовать in
;
или ;;
?
Я сделал некоторые поисковые запросы Google и понял, что in
, кажется, определяет некоторые области до следующего ;;
. Но это все еще очень расплывчато для меня. Не могли бы вы объяснить это более четко?
Спасибо за ваш ответ. Будет ли 'let myDict = MyUsers.add" test "" test2 "myDict in" обновить словарь myDict? – Ra1nWarden
Нет, ничего не обновит словарь, как я уже сказал :-) Словари неизменны. Это выражение создает новый словарь, который имеет то же имя, что и старый. –
Я вижу, но это оригинальная, переписанная, поскольку у них одно и то же имя? – Ra1nWarden