F # - Должен ли я учиться с или без #light? - PullRequest
31 голосов
/ 20 января 2009

Я нахожусь в процессе изучения F # и до сих пор наслаждаюсь им. Почти во всех примерах в Интернете используется упрощенный синтаксис (#light); тем не менее, также дайте комментарий о том, что он включен для указанного примера в большинстве случаев.

Лучше учить F #, используя #light включен или выключен? Я планирую в конечном итоге изучать его без включения, но мне интересно, будет ли лучше изучить его в начале или поработать над его применением после того, как я узнаю основной язык больше.

Ответы [ 4 ]

36 голосов
/ 20 января 2009

Я бы определенно предпочел изучить F # с синтаксисом #light. Не легкая версия иногда полезна для понимания некоторых хитростей о синтаксисе F #, но синтаксис #light дает вам много приятных впечатлений.

Например - используя # light

let add a b c = 
  let ab = a + b
  printfn "%d" ab
  c - ab

Используя non-light, вы можете написать то же самое, как это:

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 намного проще.

10 голосов
/ 21 января 2009

«Свет», вероятно, станет будущим выпуском языка по умолчанию, так что я бы выучил его таким образом. Я думаю, что редко кто-либо использует более тяжелый синтаксис, кроме OCaml-совместимости (либо при кросс-компиляции, либо потому, что человек, сидящий за клавиатурой, знает OCaml и делает плавный переход на F #).

5 голосов
/ 23 января 2009

Поскольку я изучил F # из книги OCaml (и я использую режим OCaml для Emacs для редактирования кода F #), я предпочитаю использовать «тяжелый» синтаксис. Я работал с кодом #light, и, конечно, большинство примеров F # написано с использованием синтаксиса light, поэтому полезно иметь некоторую общую информацию. Тем не менее, перейти от тяжелого к легкому намного проще, чем наоборот, поэтому, конечно, неплохо бы выучить его с использованием тяжелого синтаксиса.

Я сталкивался со случайной досадной ошибкой с тяжелым синтаксисом, который рассматривался как гражданин второго класса (объединение было сломано для выражений вычислений, выпущенных парой назад), но они довольно редки. Вообще говоря, я не думаю, что различия очень значительны, и мне нужно присмотреться, чтобы определить, какой синтаксис используется при рассмотрении кода изолированно. YMMV.

1 голос
/ 23 января 2009

Если я правильно помню, книга "Эксперт C #" упоминает, что #light будет по умолчанию, когда F # поставляется и что не легкий синтаксис предназначен только для совместимости.

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