Функциональные языки программирования выражение ориентированного, в отличие от заявления ориентированной. Это означает, что все это выражение, которое может быть оценено в значение.
Структуры потока управления, if
и match
, также являются просто выражениями. Компилятор проверяет, что все ветви этих выражений возвращают один и тот же тип.
Если вы знакомы с условным тернарным оператором на других языках, выражение F # if true then 1 else 0
, равнозначно true ? 1 : 0
.
Кроме того, функция не «выходит» как таковая. Он завершает оценку. Каждый экземпляр функции (там будет n + 1
экземпляров) завершает оценку в конце выражения if
/then
/else
.
'if' является выражением, а последнее выражение в функции действует как возвращаемое значение. – ildjarn