gpt4 book ai didi

data-structures - 将 Haskell Edison API 和 Core 移植到 F# 有什么好处吗?

转载 作者:行者123 更新时间:2023-12-04 07:17:13 26 4
gpt4 key购买 nike

Edison API 和核心模块是 Purely Functional Data Structures 的 Haskell 实现。

F# 和原生 .Net 数据结构是否充分涵盖了 Edison API 和 Core 中的用例?

尝试将 API 和 CORE Haskell 模块移植到 F# 会有什么好处吗?

最佳答案

我没看过the paper on edison ,但如果它只不过是纯功能数据结构的 Haskell 实现,那么移植书中/论文中的 SML 代码不是更有意义吗?它应该比移植 Haskell 代码更容易,Haskell 代码必须为严格注解,而 F# 必须为懒惰而注解。

本书使用的语言是 SML,带有用于惰性求值的语法扩展。 F# 原生提供了这些扩展的一半:

> let x = lazy 12;;
val x : Lazy<int> = <unevaluated>
> match x with
| Lazy(n) -> n;;
val it : int = 12
> x;;
val it : Lazy<int> = 12

转换本书的 fun lazy符号,改变这个:
fun lazy plus ($m, $n) = $m + n

对此:
let plus (m',n') = lazy (
match (m',n') with
| (Lazy(m), Lazy(n)) -> (lazy (m + n)).Force())

(见本书第 33 页)。 SML 和 F# 之间的区别只是语法上的细微差别,因此翻译应该很容易。

至于值不值得,Okasaki 书中的大部分数据结构都是非常专业的,所以它们不太可能已经存在于 .NET 中,甚至像 F# 的不可变 Set 和 Map 一样。对于需要这些数据结构的人来说,这将是值得的。

关于data-structures - 将 Haskell Edison API 和 Core 移植到 F# 有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602574/

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