小编lop*_*304的帖子

Haskell-两个列表中的元组列表

我试图实现一个函数(如下所述),它接受两个列表(每个或两个可能是无限的)并返回列表之间所有可能元素对的元组列表

zipInf :: [a] -> [b] -> [(a,b)]
Run Code Online (Sandbox Code Playgroud)

(例如输出应该是这样的,但不一定非常像这样)

zipInf [0 .. 2] ['A' .. 'C'] ~> [(0,'A'),(1,'A'),(0,'B'),(1,'B'),(0,'C'),(2,'A'),(2,'B'),(1,'C'),(2,'C')]

zipInf [] [0 ..] ~> []

zipInf [0 ..] [] ~> []

take 9 (zipInf ['A'] [0 .. ]) ~> [('A',0),('A',1),('A',2),('A',3),('A',4),('A',5),('A',6),('A',7),('A',8)]
Run Code Online (Sandbox Code Playgroud)

我开始像这样实现它:

zipInf :: [a] -> [b] -> [(a,b)]
zipInf [] _ = []
zipInf _ [] = []
zipInf
Run Code Online (Sandbox Code Playgroud)

我想将列表提供给一个帮助函数来生成列表,但是我创建的列表无法编译,也不知道如何处理无限列表

辅助功能 -

oneList :: [a] -> [b] [(a,b)]
oneList [] _ = []
oneList x:xs y:ys = [(x,y)] ++ oneList
Run Code Online (Sandbox Code Playgroud)

haskell tuples list infinite

7
推荐指数
4
解决办法
6848
查看次数

Haskell-在列表中查找元素并返回其位置

所以我需要将一个函数描述为

invFib :: Integer -> Maybe Integer
Run Code Online (Sandbox Code Playgroud)

取一个整数并在斐波那契序列中查找它(如下面的函数所述)

fibs :: [Integer]
fibs = 0:1:(zipWith (+) fibs (tail fibs)) 
Run Code Online (Sandbox Code Playgroud)

并返回数字示例的索引:

invFib 0 〜> Just 0

invFib 1〜> Just 1Just 2

map invFib [54, 55, 56] 〜> [Nothing,Just 10,Nothing]

invFib (fibs !! 99) 〜> Just 99

我尝试创建一个函数,它获取整数列表并吐出索引,但它仍然失败.有什么想法吗?

这是我试过的功能 -

findNum :: [Integer] -> Integer -> Integer -> Integer
findNum x:xs y z = if x == y
                then z
                else findNum xs y (z+1)
Run Code Online (Sandbox Code Playgroud)

编辑:该函数冻结不在斐波那契序列中的数字,也只在输入1时显示1个值

invFib :: Integer -> …
Run Code Online (Sandbox Code Playgroud)

indexing haskell list fibonacci maybe

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

Haskell- IO String获得多行

我正在尝试编写一个函数,它获取多个字符串输入并终止于空行('\n')我有以下内容

getLines :: IO [String]
getLines = do x <- getLine
           if x == ""
           return ()
           else do xs <- getLines
                return (x:xs)
Run Code Online (Sandbox Code Playgroud)

它无法编译说if语句有问题

理想情况下,我想这样工作

getLines

苹果

(输入按下)

输出:["Apple","Bird","Cat"]

string io haskell list

2
推荐指数
1
解决办法
1047
查看次数

标签 统计

haskell ×3

list ×3

fibonacci ×1

indexing ×1

infinite ×1

io ×1

maybe ×1

string ×1

tuples ×1