Ocaml - 2 для петель - PullRequest
       6

Ocaml - 2 для петель

0 голосов
/ 21 мая 2018

Я пытаюсь понять, как работает ocaml.Например, проблема 8 королев.Мне нужно сделать массив функций T (int * int) -> bool, который возвращает true, если позиция атакована другой маткой.Например, введен массив:

T[|(1,2);(4,3);(5,6);(2,7);(3,6);(2,8);(1,4);(2,2)|] (numbers represent vertical and horizontal positions:

возвращает

bool array =[|false,true,true,false.....] 

Я не проверял, но я надеюсь, что вы поняли и знаете эту проблему.Я попытался решить это с 2 циклами FOR, но возвращаемое значение смущает меня.Ocaml работает по-другому?

1 Ответ

0 голосов
/ 22 мая 2018

OCaml - это совершенно обычный и нормальный язык программирования, который работает так же, как и любые другие популярные скомпилированные языки, включая C, Pascal или Basic.Говоря более формально, это строгий (т.е. с обычной стратегией оценки) язык, который идеально поддерживает императивную процессуальную парадигму.Он использует среду выполнения C и программы, написанные на OCaml, запускаются прямо на вашем процессоре.

Как «работает» OCaml, т. Е. В чем смысл различных языковых конструкций, четко определено в руководстве OCaml.Рекомендуется прочитать его перед подключением компьютера и начать кодирование в OCaml :) Например, это отрывок из руководства OCaml , описывающего, как работает цикл for:

Выражение for name = expr1 to expr2 do expr3 done сначала вычисляет выражения expr1 и expr2 (границы) в целочисленные значения n и p.Затем тело цикла expr3 многократно оценивается в среде, где name последовательно связан со значениями n, n + 1,…, p − 1, p.Тело цикла никогда не вычисляется, если n> p.

Выражение for name = expr1 downto expr2 do expr3 done вычисляется аналогично, за исключением того, что name последовательно связан со значениями n, n − 1,…, p + 1, p.Тело цикла никогда не вычисляется, если n

. В обоих случаях целое выражение выражает значение единицы ().

Так что не пытайтесь перемешатьне вину за язык :) Это совершенно нормально, тут никаких сюрпризов.Сосредоточьтесь на своем коде и на понимании проблемы.

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