我在这里有一个小哈斯克尔情况。我试图用monad编写两个函数。 只要条件对于函数的输入/输出为真,首先应该遍历一个函数。第二个应该使用第一个数字作为输入,并将其写入输出,直到输入空格。虽然在Haskell循环条件
我坚持这一点,任何帮助?
module Test where
while :: (a -> Bool) -> (a -> IO a) -> a -> IO a
while praed funktion x = do
f <- praed (funktion x)
if f == True then do
y <- funktion x
while praed funktion y
else return x
power2 :: IO()
power2 = do putStr (Please enter a number.")
i <- getChar
while praed funktion
where praed x = if x /= ' ' then False else True
funktion = i
那么,哪一个是你的问题呢?你卡在哪里,什么不行? – leftaroundabout
这两个函数都没有编译,我敢肯定,他们不会做我希望他们做的事情。我只是不知道如何在工作版本中编写它。我基本上试图让一个while循环处理一个条件。因此,例如, '而奇数(方格3)' 应该测试方格3是否是奇数,然后使用方格3 = 9的结果并且在奇数(方格9)的情况下使用 '等等。 从技术上讲,它不应该需要一个x,它应该只与 ''同时条件函数' – Chris