欢迎访问宙启技术站
智能推送

在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],则将 xy 解析为数字,并进行加法运算,结果打印出来。如果解析过程出错,则输出 "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 提供的其他库来实现更复杂的命令行工具。