haskell相关内容

Haskell 中未定义长度列表的二进制序列化

我一直在使用 Data.Binary 将数据序列化为文件.在我的应用程序中,我逐渐将项目添加到这些文件中.两个最流行的序列化包,二进制和谷物,都将列表序列化为一个计数,然后是列表项.因此,我无法附加到我的序列化文件中.我目前读入整个文件,反序列化列表,附加到列表,重新序列化列表,然后将其写回文件.但是,我的数据集越来越大,而且我的内存开始耗尽.我可能会四处拆箱我的数据结构以获得一些空间,但这种方法 ..
发布时间:2022-01-07 20:35:00 其他开发

树的深度 (Haskell)

我想弄清楚如何在 Haskell 中计算一般树的深度.我可以找出简单二叉树的解决方案,但不能为具有任意数量叶子的一般树找出解决方案. 这是我的二叉树代码. --二叉树的深度.深度 :: 树 a ->整数深度零 = 0深度(节点 n x1 x2)= 1 + max(深度 x1)(深度 x2) 我如何为一般的树修改这个?一般树包含一个树列表,这就是我遇到困难的地方. 其次,我想把树变成 ..
发布时间:2022-01-05 18:59:20 其他开发

构建树中所有分支的列表

我需要让函数从树中返回所有可能的分支使用这种形式: 数据树 a = EmptyT |NodeT a ( Tree a ) ( Tree a ) 派生 (Show)everyBranch :: 树 a ->[[一个]] 我不知道如何处理这个... xD我还是 Haskell 的新手. 假设我有: 1/\2 3/\/\4 5 7 8 我想得到:[[1,2,4], [1,2,5], [1 ..
发布时间:2022-01-05 18:55:22 其他开发

Haskell,来自树的列表列表

我有一个树的数据结构: 数据树 a = NodeT a (树 a) ( 树 a) |空T 我需要创建一个函数,该函数返回一个列表列表,其中列表的每个元素代表树的一个级别.例如,从这里: 1/\2 3/\/\4 5 6 7 到这个:[[1],[2,3],[4,5,6,7]] 该函数必须具有以下形式: f :: 树 a ->[[一个]] 如何使用递归来实现? 有人吗 ..
发布时间:2022-01-05 18:46:22 其他开发

解释 Haskell 广度优先编号代码以遍历树

我正在阅读 克里斯的这篇论文冈崎;标题为“广度优先编号:算法设计小练习的经验教训". 一个问题是 - 算法中的魔法是如何发生的?有一些数字(例如,标题为“将一个级别的输出线程化到下一个级别的输入"的图 7)不幸的是,也许只有我,但那个数字已经完全让我感到困惑.我根本不明白线程是如何发生的? 解决方案 广度优先遍历意味着逐层遍历树.所以让我们假设我们已经知道每个级别开始时的数字是多少 ..

一棵懒惰的、广度优先的一元玫瑰树有可能展开吗?

Data.Tree 包括 unfoldTreeM_BF 和 unfoldForestM_BF 函数,用于使用 monadic 操作的结果构建广度优先的树.使用森林展开器可以轻松编写树展开器,因此我将重点介绍后者: unfoldForestM_BF :: Monad m =>(b -> m (a, [b])) ->[b] ->m [树 a] 从种子列表开始,它对每个种子应用一个函数,生成动作,产 ..
发布时间:2022-01-05 18:40:27 其他开发

二叉树的 Monad 实例

我用以下方法构建了二叉树: 数据树 a = 空|节点a(树a)(树a)推导(Eq、Ord、Read、Show) 如何为这棵树创建 Monad 类型的类实例?我可以不做吗? 我尝试: instance Monad Tree where返回 x = 节点 x 空 空空 >>= f = 空(Node x Empty Empty) >>= f = f x 但我不能为节点 x 左右创建 (>> ..
发布时间:2022-01-05 18:39:14 其他开发

Haskell 仆人从处理程序获取当前路由/URL

我想获取与我的处理程序相对应的当前路线.这是我的服务器模型仅供参考: type ServerAPI =“route01":>获取 '[HTML] 文本:“route02":>“子路由":>获取 '[HTML] 文本:“route03":>获取 '[HTML] 文本 这里有一些处理程序: route1and2Handler :: 处理程序文本route1and2Handler = ..
发布时间:2022-01-05 15:47:32 其他开发

交叉编译haskell代码时如何安装依赖项?

我已经成功创建了一个 ghc 交叉编译器,它允许我从我的 x64 linux 机器为 armv6h(在我的例子中是树莓派)编译 haskell 代码.我已经在树莓派上成功运行了 hello world 程序. 不,我想构建我的真实应用程序,它对其他 haskell 模块有很多依赖.当我为 x64 编译时,我只是这样做 cabal installdependenciy1 depenency2 ..
发布时间:2022-01-05 10:59:10 其他开发

F# 是否与 Haskell 的看法等效?

在 Haskell 中,有一个函数“take n list",它返回列表中的前 n 个元素.例如,“sum (take 3 xs)"对列表 xs 中的前三个元素求和.F# 有等价物吗?我希望它是 List 函数之一,但我找不到任何似乎匹配的东西. 解决方案 是的,它叫做 Seq.take.用法似乎与 Haskell 的相同:Seq.take count source.要在列表中使用它,请使 ..
发布时间:2022-01-05 10:18:50 其他开发

哈斯克尔 -->F#:特纳筛

当我偶然发现一种称为 Euler 筛的 Eratosthenes 筛的改进版本时,我正在阅读不同的筛分算法.根据 维基百科,有一个在 Haskell 中实现了略有不同的想法版本(称为特纳筛). 现在我试图了解给出的代码片段到底做了什么,我想我已经明白了,但现在我想将代码翻译成 F# 并且真的不知道从哪里开始.我主要担心的是似乎没有一个函数可以“减去"两个序列. 代码如下: impor ..
发布时间:2022-01-05 10:14:17 其他开发

函数式语言(Erlang、F#、Haskell、Scala)

函数式语言是否适合 Web 应用程序开发? 函数式语言是否适合业务/ERP/CRM 类型的应用程序? 解决方案 您描述的那种函数式语言是通用编程语言,它们用于各种事物,包括 Web 应用程序和业务应用程序.(我使用 Haskell). Haskell 是否适合 Web 应用程序? 在 Haskell 中构建商业网络应用 正如 gabor 所暗示的,最终归结为图书馆.Scal ..
发布时间:2022-01-05 10:11:41 其他开发

解析器组合器可以变得高效吗?

大约 6 年前,我在 OCaml 中对自己的解析器组合器进行了基准测试,发现它们比当时提供的解析器生成器慢约 5 倍.我最近重新审视了这个主题,并对 Haskell 的 Parsec 与一个简单的手动优先级爬升解析器进行了基准测试 用 F# 编写,并惊讶地发现 F# 比 Haskell 快 25 倍. 这是我用来从文件中读取大型数学表达式、解析和评估它的 Haskell 代码: impor ..
发布时间:2022-01-05 10:09:58 其他开发

如果我已经知道 OCaml,我应该学习 Haskell 还是 F#?

我想知道我是否应该继续学习 OCaml 或切换到 F# 或 Haskell. 以下是我最感兴趣的标准: 长寿 哪种语言会持续更长时间?我不想学习可能在几年内被用户和开发人员放弃的东西. 从长远来看,Inria、微软和格拉斯哥大学是否会继续支持各自的编译器? 实用性 类似this 让我害怕使用 Haskell.哈希表是快速检索的最佳结构.那里的 Haskell 支持者 ..
发布时间:2022-01-05 10:09:39 其他开发

Haskell 和 F# 之间的主要区别是什么?

我在互联网上搜索了 F# 和 这些东西是什么意思?纯函数式语言,意味着没有副作用(或调用函数时共享状态的变化),这意味着您可以保证,如果调用 f(x),除了从函数返回值外,不会发生任何其他事情,例如控制台输出、数据库输出、对全局或静态变量的更改……尽管 Haskell 可以具有非纯函数(通过 monad),但它必须通过声明“显式"隐含. 纯函数式语言和“无副作用"编程最近很受欢迎,因为它非 ..