f# - F#的隐藏特性

标签 f# language-features hidden-features

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。








这是类似 C# 的大胆尝试问题。

那么您最喜欢的 F# 隐藏(或不隐藏)功能是什么?

到目前为止,我使用的大多数功能都没有完全隐藏,但非常令人耳目一新。与 C# 或 VB.NET 相比,重载运算符是多么微不足道。

Async<T>帮助我剃掉了一些真正丑陋的代码。

我对这门语言还是很陌生,所以很高兴了解野外使用的其他功能。

最佳答案

用户定义的数字文字可以通过提供一个名称以 NumericLiteral 开头的模块来定义。并定义了某些方法( FromZeroFromOne 等)。

特别是,您可以使用它为调用 LanguagePrimitives.GenericZero 提供更易读的语法。和 LanguagePrimitives.GenericOne :

module NumericLiteralG = begin
  let inline FromZero() = LanguagePrimitives.GenericZero
  let inline FromOne() = LanguagePrimitives.GenericOne
end

let inline genericFactorial n =
  let rec fact n = if (n = 0G) then 1G else n * (fact (n - 1G))
  fact n

let flt = genericFactorial 30.
let bigI = genericFactorial 30I

关于f# - F#的隐藏特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181613/

相关文章:

arrays - 异步处理子数组并将结果缩减为单个数组

php - 为什么这样的语句可以在PHP中运行呢?

c# - 为什么 VB.NET 9 不像 C# 3 那样具有自动属性?

c# - 为什么 C# 不实现索引属性?

c++ - C++的隐藏特性?

f# - 为什么 F# 不能解决 Async<> 和 Async<Result<>> 之间的过载?

f# - 是否可以将记录的字段设为私有(private)?或者将记录成员设置为私有(private)?

user-interface - F# System.TypeInitializationException...为什么?

javascript - JavaScript 的隐藏特性?