Есть ли разница между записями и кортежами, кроме синтаксической? Есть ли разница в производительности? Одинакова ли реализация для кортежей и записей? У вас есть...
Следующий код не компилируется :let x = "hello" в Printf.printf x Ошибка :Ошибка :Это выражение имеет тип string, но ожидалось выражение типа ('a, out _channel, unit )...
Пусть это types = type intC = int;; введите boolC = bool; введите строкуC = строка;; компонент типа = A of intC | B из boolC | C строкиC;; Если я хочу применить функцию к типу а компонента А,...
Есть ли более чистый способ сделать это? Я пытаюсь сопоставить шаблон (a' option*(char *nodeType )list ref, единственный способ, которым я нашел, это :сопоставить a с | _, l -> сопоставить !l с...
Возможно ли следующее? попробуй (*опасная зона *)с Не найдено _e -> (*код для обработки не найден *)с кодом t -> (*для обработки всех остальных проблем *)Если я наберу это на верхнем уровне, я...
Можно ли распаковать тип, привязав его данные к одному значению вместо кортежа? #тип foo = Foo of int *строка;; тип foo = Foo строки int *#Фу (3; "бар" );; Фу (3; "бар" );; Ошибка :...
Для классового проекта я пишу программу, которая оценивает производительность различных реализаций одной и той же абстрактной структуры данных. Поскольку я использую одинаковый код для тестирования каждого из них, я...
Я пытаюсь скомпилировать программу, используя смешанные исходные коды C и Ocaml, при этом основная часть приложения на C вызывает некоторые фрагменты кода OCaml. Хорошо, здесь нет проблем, это кажется распространенным...
Я использую camlp4.macro для включения условной компиляции. у меня есть проблемы с сообщением OCambuild о том, что некоторые файлы с тегом «use_jscore» должны быть предварительно обработаны с заданной опцией camlp4. Вот...
Мне нужна карта OCaml с ключами типа int, поэтому я использую Map.Make для ее создания. Однако кажется, что стандартные модули «только» предоставляют такие модули, как Big_int, Int32, Int64 и Nativeint, которые требуют...
Я пытаюсь выяснить, как я могу параметризовать объекты OCaml с другими объектами. В частности, я хочу иметь возможность создать объект ссылки, который содержит объект прямого узла и обратный узел...
Я хочу написать функцию, которая принимает строку и возвращает список символов. Вот функция, но я думаю, что она не делает то, что я хочу (я хочу взять строку и вернуть список символов). let rec ...
Многие статически типизированные языки обладают параметрическим полиморфизмом. Например, в C#можно определить :T Foo(T x){ return x; } На сайте вызова вы можете сделать :int y = Foo(3); Эти типы...
Я ищу способ запомнить результаты функции OCaml f, которая принимает два параметра (или более, в общем). Кроме того, (и это сложная часть), мне нужна карта, лежащая в основе этого...
Я пытаюсь реализовать общую функцию таймера в OCaml, которая будет принимать в качестве входных данных функция произвольной арности и возвращаемого типа 'r и возвращает функцию с: той же арностью и типами входных данных...
У меня есть функция, которая возвращает [[]], и я хочу протестировать результат как модульный тест .
Но я обнаружил, что выражение [[]] == [[]] возвращает false.
Вот простой тестовый код: # [[]] == [[]];;
- : bool = false ...
Я хотел бы улучшить лямбда-код, генерируемый для конструкции "assert" OCaml 3.12.1. Вот пример: пусть f x = assert (x = 4); утверждать (2 + х = 6); утверждать (х - х = 0); выход х
...
Я новичок в модуле OCaml, и мне не удалось использовать свой собственный модуль, не сочетая «включить» и «открыть».
Я безуспешно пытался поместить подпись в отдельный файл .mli.
...
У меня есть ряд «библиотечных» модулей в OCaml (в основном служебные и вспомогательные функции), куда я добавил следующий код в конце для тривиального модульного тестирования : пусть main () = ...
main или let()...
Я пытаюсь записать и затем прочитать переменную в файл. Переменная относится к типу данных, созданному мной. (Если поможет: введите sys = Файл строки * список строк | Папка строки * список sys ;; ...
Я имею в виду этот модуль: Option Я не могу его найти, открыть Option выдает ошибку: Unbound module Option и файла 'option.cma' нет. Есть ли он в стандартной библиотеке? Он называется «option.cma»?
Глядя на неофициальную грамматику OCaml на этом сайте, единственная продукция, где появляется начало, это :Выражение ::= начало Выражения конец, а чуть дальше можно увидеть :Выражение ::= (Выражение...
Каков стандартный способ вставки элемента в определенную позицию в списке в OCaml. Разрешена только рекурсия. Никакие операции присваивания не разрешены. Моя цель - сжать график в ocaml с помощью ...
Я новичок в Ocaml, просто хочу убедиться, как выполнить простую функцию, например, вернуть n-й элемент списка с помощью рекурсивной функции? Прототип вроде get_nth (list, n) с int list * int -...
Я обнаружил следующую проблему в этом простом коде: let () = print_endline "Hello"; print_endline (Unix.getlogin ()) Запуск в обычном случае с ./a.out дает: Hello
ricardo Но запуск...
Как проще всего преобразовать Int32 в двоичную? Например:
-1 -> "\255\255\255\255"? Редактировать:
Чтобы использовать extlib, установите его с помощью yum и на верхнем уровне: #use "topfind";;
#требовать "extlib";;
# type foo = Foo of int * int
# пусть t = (1, 2)
# Ступня
Ошибка: конструктор Foo ожидает 2 аргумента(ов), но здесь применяется к 1 аргументу(ам) Как получилось, что я должен выполнить Foo (1, 2), чтобы избежать этого...
Допустим, у меня есть файл библиотеки OCaml foo.cma. Есть ли инструмент командной строки для печати подписи функций и других типов, определенных там? Утилита ocamlbrowser, похоже, основана на Windows (...