Вызов Mathematica из программы OCaml - PullRequest
3 голосов
/ 06 сентября 2010

Я пишу код OCaml.В части этого я хочу исследовать, равны ли два арифметических выражения (как x + 2 + y == x + 2 * y-y + 2)Реализация этого в mathematica проста, так что все, что мне нужно, чтобы помочь в выполнении Mathematica и вернуть результат в OCaml.Моя операционная система Linux.

Ура, З.

Ответы [ 2 ]

3 голосов
/ 06 сентября 2010

Очень общим ответом является написание сценария Mathematica для командной строки, который принимает 2 выражения (либо в командной строке, либо в stdin) и выводит, равны ли они. Затем в OCaml просто вызовите эту программу с помощью системного вызова.

Что касается написания такого сценария Mathematica для командной строки, я рекомендую MASH (раскрытие: я сделал MASH): Вызов программы Mathematica из командной строки с аргументами командной строки, stdin, stdout и stderr

3 голосов
/ 06 сентября 2010

Вы можете использовать что-то вроде этого:

let channel_to_mathematica, channel_from_mathematica = open_process "mathematica"
in
Printf.fprintf channel_to_mathematica "Tell me if this is equal ...\n";
let answer_from_mathematica = Scanf.fscanf channel_from_mathematica ... 
in
...

Документация open_process здесь

Документация модуля Scanf здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...