【问题标题】:Haskell: Variable not in scope?Haskell:变量不在范围内?
【发布时间】:2019-10-06 22:00:01
【问题描述】:

我正在尝试运行以下代码来获取 k 元素的子集,但得到 variable not in scope:ksubsets 不确定为什么?

代码:

subsets :: [a] -> [[a]]
subsets [] = [[]]
subsets (x:xs) = [zs | ys <- subsets xs, zs <- [ys, (x:ys)]]


ksubsets k xs = [ys | ys<-subsets xs, length ys==k]

【问题讨论】:

  • 你是如何运行这个的?
  • :r 然后使用ksubsets 3 [1,2,3,4,5] @WillemVanOnsem
  • 您确实使用文件来指定这些功能?或者你是否在ghci 本身中加载了这些,因为:r 确实会清理内存,从而删除不在文件中的那些。
  • ghci&gt; :{,然后复制粘贴您的行,然后是ghci&gt; :}。 (即多行输入方式)
  • 你可能搞错了。小心地创建新文件并加载它。 :)

标签: haskell


【解决方案1】:

总结cmets,以及可能的问题和解决方案:

  1. 您的代码没有错误,您甚至可以在线尝试here
  2. 如果您使用的是文本编辑器,请检查您是否保存更改。
  3. 运行 ghci,然后加载你的文件

    $> ghci

    前奏> :l path/to/your/file.hs

  4. 应该可以正常编译。

【讨论】:

  • 感谢您的总结!另一个我不知道如何解决的问题,我将如何根据 k 个元素的长度过滤子集?再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 2021-01-05
  • 2017-09-30
  • 1970-01-01
  • 2022-10-08
  • 2019-10-13
相关资源
最近更新 更多