gpt4 book ai didi

haskell - 是否可以将 F# 记录的标签用作 Haskell 中的函数或类似的函数?

转载 作者:行者123 更新时间:2023-12-02 01:41:41 25 4
gpt4 key购买 nike

在 Haskell 中,鉴于此记录:

data ARecord { labelA :: String, labelB :: Int }

我们得到这个函数:
labelA :: ARecord -> String
labelB :: ARecord -> Int

F# 似乎不是这样工作的。但是,有没有类似的?

编辑

正如@kaefer 所建议的那样,类似的东西我的意思是让我不必手动定义函数的东西。

最佳答案

它很容易定义。

type ARecord = { labelA : string; labelB : int }
let labelA { labelA = s } = s
// val labelA : ARecord -> string

编辑

以下函数将编译为相同的 IL,直接读取支持字段,而不是自动生成的实例属性。
与使用面向对象的点表示法的正常经验相反,它不需要类型注释来确定记录类型。

let labelA' aRecord = aRecord.labelA
// val labelA' : aRecord:ARecord -> string

关于haskell - 是否可以将 F# 记录的标签用作 Haskell 中的函数或类似的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28156167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com