f# - if .. else .. 是一种用 F# 写东西的惯用方式吗?

标签 f# functional-programming

编写以下内容的 F# 惯用方式是什么?或者你会保持原样吗?

let input = 5
let result = 
     if input > 0 && input  < 5 then
         let a = CalculateA(input)
         let b = CalculateB(input)
         (a+b)/2
     else
         CalculateC(input)

最佳答案

对于一个 if ... then ... else ...我可能会这样,如果你有更多的情况,我要么使用模式匹配和 when 守卫:

let result =
    match input with
    | _ when input > 0 && input < 5  -> ...
    | _ -> ...

或者您可能还想查看事件模式:http://msdn.microsoft.com/en-us/library/dd233248.aspx

关于f# - if .. else .. 是一种用 F# 写东西的惯用方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016041/

相关文章:

c# - 如何将弱类型 ICollection 转换为 F# 列表?

f# - 定义模块 VS.NET vs F# Interactive

c# - 从没有丑陋的 "Module"后缀的 C# 调用 F# 函数

generics - 具有通用约束的类型扩展不会引发错误,也不会执行预期的操作

scala - 为什么 `scala.util.Try(date)` 未定义时 `Failure` 不返回 `date`?

scala - 在Scala中应用几个字符串转换

.net - 为什么这个同步运行的异步 sleep 会挂起?

javascript - 将部分应用的函数暴露给应用程序

javascript - 遍历范围的函数式方法 (ES6/7)

javascript - javascript 函数表达式是否类似于或基于 s 表达式?