Ocaml - тот же Random.int - PullRequest
       17

Ocaml - тот же Random.int

0 голосов
/ 21 ноября 2018

У меня проблема с модулем Random.int в Ocaml.

Итак, у меня есть программа, например:

let a : int = Random.int 100;;
-> val a : int = 44

Проблема в том, что при запуске программы сemacs и я запускаю его с помощью ctrl-c ctrl-b, каждый раз получаю один и тот же результат.

Я уже тестировал, чтобы поместить Random.self_init или Random.full_init в начало программы, но это такжетот же результат.

Спасибо за помощь

Вот мой код: https://github.com/leofrk2/ocaml_ex_9.ml/blob/master/ex_9.ml (Запустите его на emacs) Может быть, где-то произошла ошибка со случайным числом.

Редактировать: ошибка была в том, что я поставил только один раз Random.self_init ().Программа работает!

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Вы должны вызвать функцию следующим образом:

Random.self_init ()

В коде, которым вы поделились, есть:

Random.full_init;;

Если вы оцените это в repl, вот вывод:

- : int array -> unit = <fun>

Вы берете только значение Random.full_init, которое является функцией, и не вызываете ее.

0 голосов
/ 21 ноября 2018

Я бы сказал, что единственная реальная возможность заключается в том, что Random.self_init на самом деле не выполняется.Вот что я хотел бы проверить.

# Random.self_init ();;
- : unit = ()
# Random.int 100;;
- : int = 62
# Random.self_init ();;
- : unit = ()
# Random.int 100;;
- : int = 79
...