fsharp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

F#

F#

F# is the functional sibling of C# on .NET. v9.0 (2025) brings Nullable Reference Types integration and better performance for list comprehensions.
F#是.NET平台上C#的函数式姊妹语言。2025年发布的v9.0版本带来了可空引用类型集成,同时提升了列表推导式的性能。

When to Use

适用场景

  • Financial Tech: Correctness and domain modeling.
  • Data Processing: Pipeline operator
    |>
    and immutability by default.
  • Interpro: Seamlessly use any NuGet package.
  • 金融科技:确保正确性与领域建模。
  • 数据处理:默认支持管道运算符
    |>
    与不可变性。
  • 跨项目交互:可无缝使用任何NuGet包。

Core Concepts

核心概念

Discriminated Unions

可区分联合

type Shape = Circle of float | Rect of float * float
.
type Shape = Circle of float | Rect of float * float
.

Pipe Operator

管道运算符

data |> filter |> map
.
data |> filter |> map
.

Computation Expressions

计算表达式

async { ... }
,
task { ... }
.
async { ... }
,
task { ... }
.

Best Practices (2025)

2025年最佳实践

Do:
  • Use Records: Immutable data containers.
  • Use Pattern Matching:
    match x with ...
    .
  • Use
    SAFE Stack
    : For full-stack F# web apps (Saturn, Azure, Fable, Elmish).
Don't:
  • Don't mimic C#: Avoid classes/inheritance unless interoperating.
推荐做法
  • 使用记录类型:不可变数据容器。
  • 使用模式匹配
    match x with ...
    .
  • 使用
    SAFE Stack
    :用于全栈F# Web应用(包含Saturn、Azure、Fable、Elmish)。
不推荐做法
  • 不要模仿C#:除非需要交互操作,否则避免使用类/继承。

References

参考资料