小编zer*_*iel的帖子

Haskell错误不在范围内:数据构造函数

我在Haskell中编写了一些简单的模块,然后import在其他文件中编写了它.然后我试图使用我的模块中的数据构造函数 - 有一个错误Not in scope: data constructor: <value>.我该如何解决?

注意:当我在导入后在解释器中使用它时 - 一切都没有错误.

我的模块Test.hs:

module Test (test_f) where
data Test_Data = T|U|F deriving (Show, Eq)

test_f x
    | x == T = T
    | otherwise = F
Run Code Online (Sandbox Code Playgroud)

我的档案file.hs:

import Test

some_func = test_f
Run Code Online (Sandbox Code Playgroud)

如果我在翻译中写作没有错误:

> :l Test
> test_f T
T
Run Code Online (Sandbox Code Playgroud)

在解释器中我正在尝试执行some_func T,但是有一个错误.如何Test_Data在我的文件中使用类来描述注释?

haskell

11
推荐指数
2
解决办法
3258
查看次数

如何压缩不同长度的列表?

我怎么能zip两个像

["Line1","Line2","Line3"]
["Line4","Line5"]
Run Code Online (Sandbox Code Playgroud)

不丢弃第一个列表中的休息元素?

如果可以的话,我想用空列表压缩额外的元素.

haskell

11
推荐指数
2
解决办法
4337
查看次数

如何在Haskell中生成随机数组?

如何使用Data.Array?生成随机数组?

我有功能,给我一个随机数:

randomNumber :: (Random r) => r -> r -> IO r
randomNumber a b = getStdRandom (randomR (a,b))
Run Code Online (Sandbox Code Playgroud)

然后我试图使用函数Data.Array来生成列表

assocs $ array (1,100) [(i,i) | i <- (randomNumber 1 10)]
Run Code Online (Sandbox Code Playgroud)

我知道,那种类型randomNumberIO,有什么方法可以转换IO Int -> Int吗?或者我需要使用其他方法来获取随机列表?我应该binddo块中使用operator来执行这些功能吗?

haskell

7
推荐指数
2
解决办法
1398
查看次数

使用折叠的列表的局部最大值

有没有办法找出列表的本地最大值使用foldr或者foldl可能我必须使用unfoldr因为列表的第一个和最后一个元素不是本地最大值?

我理解如何使用带有警卫的递归来找到它,例如

localMax :: [Int] -> [Int]
localMax []       = []
localMax (x:[])   = []
localMax (x:y:[]) = []
localMax (x:y:z:zs)
    | y > z && y > x = y:localMax (y:z:zs)
    | otherwise = localMax (y:z:zs)
Run Code Online (Sandbox Code Playgroud)

haskell

5
推荐指数
2
解决办法
1747
查看次数

除LINQ中的字符串外,如何删除长度相同的字符串?

我有一个按字符串长度排序的Enumerable字符串序列(所有字符串都是大写的).如何按字母顺序排序此序列,然后删除具有相同长度的所有字符串,除了LINQ中每个长度组中的一个?

例如: ORIEW DRERE EWKD OPPA LTS ERS YT GL HF 应该是 DRERE EWKD ERS GL

c# linq

0
推荐指数
1
解决办法
98
查看次数

标签 统计

haskell ×4

c# ×1

linq ×1