1
open Map
open Pretty
let d_doc() (x : doc) : doc = x
let d_str() = text
let d_map d_k d_v() m : doc =
printf "{%a}"
d_doc
(Map.fold (fun k v acc -> printf "%a, %a -> %a" d_doc acc d_k k d_v v) m (text ""))
сообщает мне «Ошибка: несвязанное значение Map.fold». Как мне это сделать? (Я хотел бы либо указатель на ссылку, которая объясняет, как использовать функции карты (или вообще функции модуля в целом), стандартный библиотечный симпатичный принтер для карт и/или исправление для моего кода.)Как распечатать карту в OCaml?
Ваш вопрос заголовок вводит в заблуждение. Вы действительно задаетесь вопросом, почему «Map.fold» не найден, что совсем не о печати. Вы следуете примеру из определенной книги? Нам также нужно знать, какие библиотеки вы загрузили. –
Нет, моя конечная цель - распечатать карту из стандартной библиотеки. У меня есть код шаблона из pset для анализа программ, и я пытаюсь распечатать свою карту для отладки. Map.fold был первым, что я пробовал, и если кто-то просто скажет мне, почему Map.fold не найден, но это не заставляет меня знать, как распечатать карту, тогда я не буду удовлетворен ответ. –
Вот неудовлетворительный ответ: «Карта» - это функтор, а не модуль. Таким образом, он не имеет функции 'fold' как таковой. Он создает модули, которые имеют функцию 'fold'. Если вы просто хотите отлаживать, возможно, вам будет проще сосредоточиться на реальных модулях, которые у вас есть (приложения «Map.Make»). –