选择是否对 F# 中的小型 AST 使用可区分联合或记录类型
假设我正在实现一个非常简单的玩具语言解析器。我正在决定是使用 DU 还是记录类型(也许两者混合?)。该语言的结构如下: a Namespace consists of a…
与可区分联合相比,在 F# 中使用记录类型时更加详细
let Method = { Name:string } //oversimplification let method_parser = spaces >>. many1Satisfy isLetter .>> spaces |>> (fun name -> { Name=na…
F# 中的函数应用运算符 ($)?
假设我有这段代码, let identifier = spaces_surrounded (many1Satisfy isLetter) 我想知道是否有任何本机 F# 函数允许我将其重构为 let identifier …
在可区分联合中使用 F# 中的 and 关键字
我今天面临以下 DU 声明: type Grammar = Definition list and Definition = Def of string * Expression and Range = | Char of char | Range of ch…
某些编程语言如何区分函数和函数指针?
我主要谈论的是函数式编程语言。例如,map 的维基百科文章在 Haskell 中有这个示例- ish 语言: map square [1,2,3,4,5] 解析器/编译器如何知道我们要…
何时使用部分应用函数
Closed. This question is opinion-based. It is not currently accepting answers. 想要改进这个问题?更新问题,以便可以通过编辑这篇文章用事实和…
这种类似 monad 的函数式编程模式的名称是什么?
我偶尔会在代码中遇到类似于 monad 的模式,但是 不能在 >>= 之间保持一致的类型。 这是我能想到的最简单的例子:( 首先是一些类型级布尔值 data TyT…
R 中恒等函数的实际用途是什么?
Base R 定义了一个identity 函数,一个返回其参数的简单恒等函数(引用自?identity)。 它的定义是: identity <- function (x){x} 为什么这样一个微…
如何使这段代码发挥作用?
我编写了一个简单的脚本,用于将 c 样式标识符名称(例如,invoice_number)转换为 java 样式标识符名称(例如,invoiceNumber)。 val files = Vecto…
尝试在 Mathematica 中生成随机数数组时出现问题
我正在尝试以函数方式在 Mathematica 中生成随机数数组。到目前为止,这是我目前的尝试: Array[Random[Real, {-10, 10}], 7] 问题是这总是打印相同的…
在 F# 中使用元组参数调用 BCL 函数
根据我所读到的内容,如果我没有记错的话,似乎任何 BCL 方法都将其参数作为 F# 中的元组接收。所以我想知道我是否 let rndNumber= rng.Next(-10, 10)…