Интерактивные команды F # соответствуют ghci: t: i - PullRequest
4 голосов
/ 14 апреля 2020

Я изучаю F # через F # интерактивный.

Есть ли команды, которые действуют как GHCi :t, :i?

  • :t value показывает тип значения .
  • :i type показывает объявления верхнего уровня типа.

Ссылка: fsharp-interactive

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020

Я рекомендую вам никогда вводить напрямую в FSI. Используйте редактор с поддержкой F #, например Visual Studio, VS Code или Rider. Напишите код в редакторе, выберите определения или выражения в коде и отправьте в FSI (обычно с помощью Alt-Enter). Это обеспечит гораздо лучший опыт и сэкономит вам много времени. Преимущества:

  • Введите информацию о наведении для любых символов (включая параметры типа функции и то, к чему они могут быть привязаны в определенном контексте)
  • Проверка ошибок типа в реальном времени над несколькими функциями / значениями
  • Предложения автозаполнения
  • Подсветка синтаксиса
  • Нет необходимости ставить ;; в конце любой строки

Я писал F # в течение нескольких лет с интенсивным использованием FSI, и после первого дня я никогда не печатал в FSI, потому что в этом нет никакого преимущества.

2 голосов
/ 14 апреля 2020

В F # Interactive вы можете просто написать имя функции, чтобы увидеть ее тип. Например, если вы хотите видеть типы id, string или List.map, просто напишите их:

> id;;
val it : ('a -> 'a)

> string;;
val it : (obj -> string) = <fun:it@6-3>

> List.map;;
val it : (('a -> 'b) -> 'a list -> 'b list)

Это дает вам функциональность, аналогичную :t в GHCi.

Я не знаю ни одной команды, которая соответствует :i, хотя я признаю, что это было бы полезно.

...