第三个haskell程序:将字符串倒序输出
将字符串倒序输出
执行:hello.exe haskell
结果:lleksah
import System( getArgs )
main = do
args <- getArgs
putStrLn (if length args == 0 then "no argument!" else reverse (args !! 0))
main = do
args <- getArgs
putStrLn (if length args == 0 then "no argument!" else reverse (args !! 0))
要点:
(1) haskell的基础库Prelude中提供了reverse的函数, 源代码用到了递归定义:
reverse l = rev l []
where
rev [] a = a
rev (x:xs) a = rev xs (x:a)
where
rev [] a = a
rev (x:xs) a = rev xs (x:a)
(2) 字符串类型实际上是[Char]类型,也就是字符的数组
在Prelude模块中定义了五种数值(numeric)类型:
(3) 最强大的数据类型还是List, 将一组值放在方括号内表示
例如:
[1, 2, 3]
[1 .. 5] 即 [1, 2, 3, 4, 5]
[1, 3 .. 10] 即 [1, 3, 5, 7, 9]
['H', 'e', 'l', 'l', 'o'] 即 "Hello"
----==== Email: slofslb (GTD) qq.com 请将(GTD)换成@ ====----
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者:申龙斌的程序人生
---- 魔方、桥牌、象棋、游戏人生...
---- BASIC、C++、JAVA、C#、Haskell、Objective-C、Open Inventor、程序人生...
---- GTD伴我实现人生目标
---- 区块链生存训练
---- 用欧拉计划学Rust编程
---- 申龙斌的读书笔记(2011-2019)
----