У меня есть рекурсивная неизменяемая структура данных в ocaml, которую можно упростить примерно так: type expr знак равно
{eexpr: expr_expr; some_other_complex_field: a_complex_type;
} и ...
Я знаю, что можно определить рекурсивные модули, кто-нибудь знает, как определить рекурсивные сигнатуры? Например, я хотел бы реализовать: module type AAA = sig module Bbb : BBB type 'a ...
Я кодирую OCaml под Emacs, у меня есть один make-файл в рабочей папке и несколько подпапок, содержащих файлы .ml. Если я запускаю компиляцию Mx и make работает нормально с буфером make-файла, но ...
В F # я не могу жить без каналов (<| и |>) let console (dashboard: Dashboard ref) = let rec eat (command: string) = command .Split ('', '(', ')') |> Seq.filter (fun s - & ...
Я занимаюсь компоновкой автоматов. Итак, в конце я хочу также нарисовать составные автоматы. Есть ли в ocaml для этого какие-нибудь библиотеки? или есть обертки ocaml, написанные для любого графа ...
Есть ли в Ocaml хэш-таблицы, которые используют == вместо = при проверке равенства ключей? Например: # введите foo = A of int ;;
# let a = A (1) ;;
# let b = A (1) ;;
# a == b ;;
-: bool = false
# a = b ;;
...
Как определить тип системы / операционную систему в OCaml? Моя нынешняя идея действительно странная. Выполнение системного вызова: "uname -a" с let syscall? (Env = [| |]) cmd = let ic, oc, ec = Unix ....
Я определил два типа записей: type name = {r0: int; r1: int; c0: int; c1: int; тип: dtype; uid: uid (* key *)} и func = {name: string; тип: dtype; params: var ...
Я определил следующий интерфейс и модуль: тип модуля TYPE = тип sig t конечный модуль Type = (тип структуры t = | TBot | T of int | TTop
end: TYPE) Теперь я понимаю, что если я ...
Я просто определяю модуль Matrix следующим образом: модуль Matrix = struct type element type t = element array array let make (nr: int) (nc: int) (init: element) : t = let result = Array....
У меня есть файл Tools.ml, который содержит некоторые общие служебные функции, которые я написал сам. В разделе ... / Code / у меня есть несколько папок, каждая из которых содержит проект. У меня вопрос, где мне разместить эти инструменты ....
Существуют ли какие-либо реализации чисто функционального стандарта двоичная куча? Я знаю, что есть много интересных куч, например: Биномиальная, левая куча, все они имеют функциональную реализацию, просто интересно ...
Я хочу поэкспериментировать с проектом с открытым исходным кодом Frama-C и хотел бы установить инструменты на компьютере с Windows 7. Похоже, что в предыдущих версиях есть бинарные установщики для ...
Я переводил следующий код Haskell в OCaml: data NFA qs = NFA
{intialState :: q
, isAccepting :: q -> Bool
, transition :: q -> s -> [q]
} Сначала я попробовал очень дословно ...
У меня есть модуль StringMap, созданный функтором Map.Make с заданным типом String: module StringMap = Map.Make (String) Помимо обычных операций, предоставляемых Map, я хотел бы чтобы добавить больше определений ...
Я пытаюсь понять, как OCaml представлен в корпоративном технологическом стеке. Например, есть ли в Ocaml собственная очередь сообщений предприятия или механизм рабочего процесса? Так что, может кто-нибудь посоветовать мне фреймворки ...
Я переключаюсь с Haskell на OCaml, но у меня возникают некоторые проблемы. Например, мне нужно определение типа для регулярных выражений. Я делаю это с помощью: type re = EmptySet | EmptyWord | Symb of char ...
Я получаю «Ошибка: предупреждение 25: неправильный стиль, все предложения в этом сопоставлении с шаблоном защищены» Что означает «охраняемый»? В моем коде есть сопоставление с образцом - сопоставить z с | y, когда List.length z = 0 -> ......
Как читать содержимое из файла в ocaml? Конкретно как их разобрать? Пример: предположим, что файл содержит (a, b, c); (b, c, d) | (a, b, c, d); (b, c, d, e) | после прочтения мне нужны два списка, содержащие ...
У меня проблема с порядком добавления библиотек в компоновщик. Библиотеки, ранее собранные ocamlbuild, подключаются после списка библиотек, который я включил в правило флага. И, ...
Мне интересно, зачем нам нужна функция типа "% identity", аналогичная let a = a. Собирается ли с его помощью повысить производительность? Я ввожу в свою программу фантомную типизацию, вызывая identity ...
В Haskell порядок объявления в конструкциях let / where не имеет значения, например: fx = let g1 xy = if x> y then show x else g2 yx g2 pq = g1 qp in ... где g2 используется в g1 .. .
Похоже, что в стандартной библиотеке нет функции типа char -> string -> string, которая вставляет char перед (или в конце) строки. Существуют обходные пути, например, использование ...
Может ли кто-нибудь помочь мне в написании кода эффективной проверки подстроки в OCaml? Учитывая две строки, проверьте, содержит ли первая вторую? Можем ли мы это сделать с помощью модуля Str?
Можно сопоставить с несколькими аргументами функции, создав кортеж и затем деструктурировав его в выражении соответствия: let f x y = match x, y with | pattern1 -> expr1 | ... ....