F # - Должен ли я учиться с или без # света?
Я изучаю F # и до сих пор наслаждаюсь этим. Почти все примеры онлайн используют легкий синтаксис (#light); однако также дайте комментарий о том, что в большинстве случаев он включен для указанного примера.
Лучше ли узнать F #, используя # свет включен или отключен? Я планирую, в конечном итоге, изучить его без включения, но мне интересно, было бы лучше изучить его в начале или работать над его применением после того, как я больше знаю основной язык.
Ответы
Ответ 1
Я бы предпочел изучить F # с синтаксисом #light. Нелегкая версия иногда полезна для понимания некоторых трюков в синтаксисе F #, но синтаксиС#light дает вам много приятного опыта.
Например - с помощью #light
let add a b c =
let ab = a + b
printfn "%d" ab
c - ab
Используя не-свет, вы можете написать одно и то же:
let add a b c =
let ab = a + b in // 'in' keyword specifies where the binding (value 'ab') is valid
printfn "%d" ab; // ';' is operator for sequencing expressions
c - ab;; // ';;' is end of a function declaration
Это, например, показывает, что вы не можете написать что-то вроде:
let doNothing a b =
let sum = a + b in
В конце есть ключевое слово "in", но функция не имеет никакого тела (потому что в нем нет выражения "in" ). В этом случае непрозрачный синтаксис иногда интересен, чтобы понять, что происходит... Но, как вы можете видеть, код #light намного проще.
Ответ 2
"#light", вероятно, станет дефолтом в будущей версии языка, поэтому я бы узнал его таким образом. Я считаю, что для кого-то редко можно использовать более тяжелый синтаксис, кроме совместимости с OCaml (либо при кросс-компиляции, либо потому, что человек, сидящий на клавиатуре, знает OCaml и делает более плавный переход на F #).
Ответ 3
Поскольку я изучил F # из книги OCaml (и я использую режим OCaml для Emacs для редактирования кода F #), я предпочитаю использовать "тяжелый" синтаксис. Я работал с кодом #light, и, конечно, большинство примеров F # написаны с использованием легкого синтаксиса, поэтому полезно иметь общее знакомство. Тем не менее, это довольно легко переключиться с тяжелого на свет, чем наоборот, поэтому, конечно, неплохо было бы изучить его с использованием сильного синтаксиса.
Я столкнулся с случайной раздражающей ошибкой, когда тяжелый синтаксис рассматривался как гражданин второго сорта (комбинация была сломана для выражений вычисления, выпущенных парами), но они довольно редки. Вообще говоря, я не думаю, что различия очень значительны, и мне нужно взглянуть близко, чтобы определить, какой синтаксис используется при просмотре кода в изоляции. YMMV.
Ответ 4
Если я правильно помню, книга "Expert С#" упоминает, что #light будет по умолчанию, когда отправляется F #, и этот синтаксис не светится только для совместимости.