Ada*_* Xu 1 haskell function-composition
我目前正在处理99个haskell问题
我不明白为什么我在这个函数中出错了: -
repli :: [a] -> Int -> [a]
repli xs n = concatMap (take n . repeat) xs
Run Code Online (Sandbox Code Playgroud)
如果您使用的是REPL,请尝试
>>> let repli xs n = concatMap (take n . repeat) xs
Run Code Online (Sandbox Code Playgroud)
在REPL(ake GHCi)中编写Haskell与将其写入文件有点不同.首先,变量绑定和函数定义必须以letin 为前缀
>>> let a = 1
>>> let f x = x + a
Run Code Online (Sandbox Code Playgroud)
另一方面,您通常必须在一行中输入所有定义.您可以使用分号分隔单独的定义,如下所示
>>> let a = 1; b = 2
Run Code Online (Sandbox Code Playgroud)
或者你可以使用多线模式,像这样
>>> :{
>>> let c = 3
>>> d = 4
>>> :}
Run Code Online (Sandbox Code Playgroud)
如果你已经了解了monads(对吗?)那么你可以想象你在REPL中编写的所有东西都是一个do类型的块的一部分,在IO ()你输入它们时执行语句.所以在一个文件中你可能会写
main :: IO ()
main = do
name <- getLine
let greeting = "Hello " ++ name ++ "!"
putStrLn greeting
Run Code Online (Sandbox Code Playgroud)
而在REPL你会写
>>> name <- getLine
Chris
>>> let greeting = "Hello " ++ name ++ "!"
>>> putStrLn greeting
Hello Chris!
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |