我想删除所有具有相同值的元组,例如[(1,1), (2,3), (2,2), (3,4)]我想要的[(2, 3), (3, 4)].我在Haskell工作.这是我试过的:
unique [] = []
unique (x:xs) = if (fst x) == (snd x) then unique (xs) else x:[]
Run Code Online (Sandbox Code Playgroud)
输出是:
[(2,3)]
Run Code Online (Sandbox Code Playgroud)
我很困惑,为什么(3, 4)没有出现.
我有一个游戏,用户与计算机,我想随机选择谁开始游戏.我有
a = getStdRandom $ randomR (0, 1)
Run Code Online (Sandbox Code Playgroud)
这得到一个随机数0或1.但它是一个IO Int,所以我不能有一个if语句将它与一个数字相比较
if a == 0 then userStarts else computerStarts
Run Code Online (Sandbox Code Playgroud)
我试图比较IO Int与IO Int和它不工作了,我也试着
我对Haskell很新,不知道如何处理这个问题.要求的代码详情:
randomNumber = getStdRandom $ randomR (0, length symbols - 5) -- this will be 0 or 1
randomNumber2 = getStdRandom $ randomR (0, length symbols - 5) -- according to
-- the solution I need another function returning IO int.
a = do
x <- randomNumber
randomNumber2 $ pureFunction x …Run Code Online (Sandbox Code Playgroud) random haskell functional-programming io-monad haskell-stack
我是Haskell的新手,如果几个布尔值为true,我将尝试执行多个语句。我使用了警卫队尝试了它,但它只执行了第一条正确的语句,然后停止了。我希望它执行所有正确的示例,例如f 5执行gx,然后还执行h x。我尝试使用if语句,但不能。
f x
| x < 10 = g x
| x < 15 = h x
| otherwise = m x
Run Code Online (Sandbox Code Playgroud)
这只是一个简化,实际上我有一个不同的程序。情况不同,我只是想像其他编程语言一样具有多个if语句。因此,在此示例中,如果x <10,则执行某项操作;如果x <15,则也执行此操作。