я проверить некоторые простые F # код для «если» выражение, но результат является неожиданным для меня:«если» выражение вопрос
> let test c a b = if c then a else b;;
val test : bool -> 'a -> 'a -> 'a
Однако
> test true (printfn "a") (printfn "b");;
a
b
val it : unit =()
Я бы ожидать только « »напечатано, но здесь я получил оба« a »и« b ». Интересно, почему так получается? Благодаря!
Спасибо за ваши ответы! Взяв оценку перед вызовом, я бы хотел, чтобы результат был получен как «a, b, a», то есть добавление результата вызова в конец. Ладно, не суть. Вероятно, именно так работает F #. – Here