ключевое слово ocaml null: один раз, но не более?

На верхнем уровне ocaml (версия 3.11.2) это простое выражение выдает ошибку:

# let a = [] in if null a then 0 else 1;;
Error: Unbound value null

У меня есть только начал изучать ocaml из книги oreilly , которая, кажется, часто использует null в качестве ключевого слова - например, начало страницы 32:

# let rec size a_list =
    if null a_list then 0
    else 1 + (size (List.tl a_list));;

Мне неловко задавать здесь такой очевидно вопрос, который можно использовать в Google. Но после долгих поисков в Google я пришел с пустыми руками. Так что я открыт для предложений запросов Google так же, как и для простых ответов. (неудачные попытки Google: [ocaml "Ошибка: несвязанное значение null"] [ключевое слово ocaml null] [ocaml changelog null] [ocaml change null]).

Вопрос: когда-то значение null было ключевым словом ocaml, а теперь нет? Или я неправильно установил ocaml или неправильно написал что-то?

Я, конечно, могу заменить каждое вхождение «null» на «[]» в коде, но меня удивляет, что дословная копия кода из книги выдает ошибку так рано. В этой книге много других ошибок? Я считаю, что он был написан с учетом ocaml 2.04; это слишком старое? Я выбрал его, потому что мне понравились оглавление и бесплатная онлайн-доступность. Помимо этой нулевой ошибки (в которой я все еще больше готов винить себя, чем авторов), объяснения хороши, и я с нетерпением жду обсуждения смешивания функционального и императивного стиля (расширяющего кругозор для меня, как для кого-то знаком только с c / c ++).

7
задан Richard J. Ross III 16 March 2013 в 14:05
поделиться