在python中,有许多IDE可以让你这样做.
>>> if (a==5):
print "Yes"
else:
print "No"
Run Code Online (Sandbox Code Playgroud)
但是在haskell的GHCi中:
Prelude> do
<interactive>:2:1: Empty 'do' block
Run Code Online (Sandbox Code Playgroud)
这是行不通的.是否有任何IDE允许您以交互模式执行多行命令.
注意:我知道:{和:}命令,但您输入后无法编辑上面的行.
如果我们选择它们,两个函数是否等效monadPlusSDif
,Maybe
作为数据类型MonadPlus
?
tdif :: Int -> Int -> Maybe Int
tdif x y
| y == 0 = Nothing
| otherwise = Just (div x y)
monadPlusSDif :: MonadPlus m => Int -> Int -> m Int
monadPlusSDif x y = guard (y /= 0) >> return (div x y)
Run Code Online (Sandbox Code Playgroud) applyAll :: [[a] -> [a]] -> [a] -> [a]
applyAll [] [] = []
applyAll [] a = a
applyAll (f1:fl) a = applyAll( (drop 1 fl)(f1 a))
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
Expression : drop 1 fl (f1 a)
Term : drop
Type : Int -> [e] -> [e]
Does not match : a -> b -> c -> d
Run Code Online (Sandbox Code Playgroud)
我想做那样的事
applyAll [tail, tail, tail, tail] [1,2,3,4,5] = [5],
applyAll [(map (* 2)), (map (+ 1))] [1,2,3,4,5]) = [3,5,7,9,11]
Run Code Online (Sandbox Code Playgroud) 在Haskell中,我写了一个函数,给定a List of a
,返回Maybe a
.
max' :: Ord a => [a] -> Maybe a
max' [] = Nothing
max' (x:xs) = Just $ foldr (\y acc -> if (y > acc) then y else acc) x xs
Run Code Online (Sandbox Code Playgroud)
我怎么能在Scala中写这个?我不确定Ord
Scala 中的等价物.
我试图获得一个带有foldr的函数来处理具有3> 4,...等值的列表,如果列表中的值为true,则返回True.我到目前为止尝试过这样做:
fold :: [Bool] -> Bool
fold xs = foldr (x==True) xs
where x:xs
Run Code Online (Sandbox Code Playgroud) 因此,在互联网上搜索了一段时间以获得一个很好的解决方案后,我已经到了路的尽头.
我目前面临着一些关于文本处理的Haskell问题,而且大部分问题一直都很顺利.但是,我现在坚持在列表中排序元组.
基本上,我有一个元组列表,所以有类似的东西
list = [("hey","there"),("there","hey"),("bears","are")]
Run Code Online (Sandbox Code Playgroud)
我现在的目标是在内部对元组进行排序,以便我收到
list = [("hey","there"),("hey","there"),("are","bears")]
Run Code Online (Sandbox Code Playgroud)
然后,我将运行一个group $ sort list
以便能够检索有多少等效对的计数.换句话说,("hey,"there")
相当于("there","hey")
.
到目前为止我尝试过的是使用地图功能.但是,似乎你不能使用map函数运行列表操作,但至少要尝试理解我的最终目标是什么,这是我到目前为止所取得的成就.
countup tuples =
let final =
sort sorted_internal where
sorted_internal = map (\x->(sort x)) tuples
in map (\x->(head x, length x)) final
Run Code Online (Sandbox Code Playgroud)