在Haskell中实现一个命令行工具
发布时间:2023-12-09 19:47:39
Haskell 是一种纯函数式编程语言,它的特点是具备强静态类型系统和纯函数特性。在 Haskell 中实现一个命令行工具,通常涉及到处理命令行参数、IO 操作、错误处理等。
下面是一个使用 Haskell 实现的简单命令行工具示例:
import System.Environment (getArgs)
main :: IO ()
main = do
args <- getArgs
case args of
["hello"] -> putStrLn "Hello, world!"
["add", x, y] -> case (readMaybe x, readMaybe y) of
(Just num1, Just num2) -> print (num1 + num2)
_ -> putStrLn "Invalid input"
_ -> putStrLn "Invalid command"
上述示例实现了一个命令行工具,它具备两个功能:打印 "Hello, world!" 和执行加法运算。
使用 System.Environment 模块的 getArgs 函数获取命令行参数,并使用 case 表达式对不同的参数进行匹配。
1. 如果参数为 ["hello"],则输出 "Hello, world!"。
2. 如果参数为 ["add", x, y],则将 x 和 y 解析为数字,并进行加法运算,结果打印出来。如果解析过程出错,则输出 "Invalid input"。
3. 如果参数不匹配上述两种情况,则输出 "Invalid command"。
编译并执行以上代码,可以通过命令行传递参数调用对应功能:
$ runhaskell MyTool.hs hello Hello, world! $ runhaskell MyTool.hs add 2 3 5 $ runhaskell MyTool.hs add 2 abc Invalid input $ runhaskell MyTool.hs something Invalid command
这是一个简单的命令行工具示例,你可以根据实际需求扩展它的功能。同时,如有需要,你可以使用 Haskell 提供的其他库来实现更复杂的命令行工具。
