Функция F # if с синтаксисом параметров - PullRequest
0 голосов
/ 20 декабря 2018

Проблема: я не могу понять, к чему относится ошибка, когда она отображается

Вот ошибка: source_file.fs (10,5): ошибка FS0010: неожиданное ключевое слово 'ifв обязательном порядке.Ожидаемый '=' или другой токен.

И я уже давно изучаю эту ошибку и правильный синтаксис.

Теперь, надеюсь, я хочу сделать следующее.Это очевидно из общего вида программы.

Знание правильного синтаксиса было бы здорово, так как документы microsofts невелики.

Поскольку это так, я просто не понимаю, что может бытьнеправильно.

open System

let one = "one"
let two = "two"

if oneortwo one then printfn one + " 1"
else printfn two + " 2"

let oneortwo(a : string)
    if a = "one" then return true
    elif a = "two" then return false

return false

1 Ответ

0 голосов
/ 20 декабря 2018

F # - язык, основанный на выражениях, что означает, что все имеет значение (что-то возвращает).F # также статически типизирован, поэтому все возвращаемое значение имеет определенный тип.

Поскольку все является выражением, ключевое слово return не используется.Последним выражением в теле функции является возвращаемое значение.

Это также относится к if ... then ... else: каждая ветвь должна возвращать значение и иметь одинаковый тип.

Правильный синтаксис для вашегофункция

let oneortwo a =
    if a = "one" then true
    else false

Отличным источником изучения F # является сайт Скотта Влашина F # для развлечения и прибыли

...