gpt4 book ai didi

haskell - 为什么 ghc 评估我的无限列表?

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

作为我的第一个 haskell 程序,我正在尝试这样做 - 这是获得 1 到 10 的艰难方法。我正在构建一个无限的整数列表,并对它们进行排序,然后取前 10 个。我的目的是说服自己我可以处理无限列表,而不会导致对它们的评估超出所需结果的严格要求(咳咳)。

我的代码是..

module Main where

import Data.List

minima n xs = take n (sort xs)

main = do
let x = [1..]
print (minima 10 x)

用 ghc 编译并运行生成的可执行文件..它坐在那里分配直到被杀死。

任何提示?

最佳答案

问题是您正在尝试对无限列表进行排序。在知道列表中的所有元素之前,列表永远无法完全排序,这就是它挂起的原因。您的程序在有限列表中运行良好。

另外,作为未成年人,您可以将最小值重写为

minima n = take n . sort

由于部分应用, minima n将返回一个需要列表的函数。

关于haskell - 为什么 ghc 评估我的无限列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450411/

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