本文介绍的内容有:在Fedora Linux系统中安装Haskell、Haskell中的第一个程序和使用Haskell软件包。
简介 Haskell是一种功能编程语言,与使用过程性语句的命令式语言相比,用户可以创建和创建程序。 Haskell具有最新的编程范例,可用于通用程序、研究和工业应用。最值得注意的是,它使用高级类型的系统纯粹是功能性的,这意味着每个计算,即使是产生副作用IO操作的计算,也都使用纯函数在数学意义上进行定义。 另外,Haskell越来越受欢迎的主要原因包括易于维护、广泛的软件包、多核性能以及针对某些错误(例如空指针或死锁)的语言安全性。
在Fedora Linux中安装Haskell Fedora Linux提供了一种通过官方存储库安装Glasgow Haskell编译器(GHC)的简便方法: $ sudo dnf install -y ghc $ ghc --version The Glorious Glasgow Haskell Compilation System, version 8.6.5 参考:dnf命令_Linux dnf命令使用详解:新一代的RPM软件包管理器。 现在已经安装了GHC,让我们编写一个简单的程序,对其进行编译并执行。
Haskell中的第一个程序 让我们写传统的“Hello, World!” Haskell中的程序,首先,创建一个main.hs文件,然后键入或复制以下内容: main = putStrLn ("Hello, World!") 运行该程序非常简单: $ runhaskell main.hs Hello, World! 生成程序的可执行文件就像运行它一样简单: $ ghc main.hs [1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... $ ./main Hello, World! GHC提供了“Read Eval Print Loop”(REPL)命令,以交互方式评估Haskell表达式: $ ghci Prelude> :load main.hs [1 of 1] Compiling Main ( main.hs, interpreted ) Ok, one module loaded. *Main> main Hello, World! *Main> :type putStrLn putStrLn :: String -> IO () *Main> :info String type String = [Char] -- Defined in ‘GHC.Base’ *Main> :help ... 最常见的REPL命令是: :load加载文件。 :reload重新加载已加载的文件。 :type显示表达式的类型。 :info显示有关名称的信息。 :browse列出已加载的函数。
使用Haskell软件包 Haskell具有打包系统以共享功能。 为了展示如何使用软件包,让我们写一个新的,首先,创建MyPackage.hs文件,然后键入或复制以下内容: module MyPackage where greet name = putStrLn ("Hello, " ++ name ++ "!") 接下来,修改main.hs文件,如下所示: import MyPackage main = greet ("Fedora") 在修改后的main.hs中,而不是使用标准的putStrLn函数来打印“Hello, World!”该应用程序现在使用新创建的包中的greet函数: $ runhaskell main.hs Hello, Fedora! GHC会自动在当前工作目录中查找软件包,也可以查找系统上全局安装的软件包,要在Haskell项目中使用Fedora软件包,您需要安装开发文件,例如,让我们使用ansi-wl-pprint库添加颜色: $ sudo dnf install -y ghc-ansi-wl-pprint-devel 接下来,修改MyPackage.hs文件: module MyPackage where import Text.PrettyPrint.ANSI.Leijen greet name = putDoc (green (text ("Hello, " ++ name ++ "!\n"))) 然后,您可以使用动态链接构建一个小的可执行文件: $ ghc -dynamic main.hs -o greet && strip greet [1 of 2] Compiling MyPackage ( MyPackage.hs, MyPackage.o ) [2 of 2] Compiling Main ( main.hs, main.o ) Linking greet ... $ du --si greet 17k greet $ ./greet Hello, Fedora! 至此,使用Haskell软件包的操作完成。
相关主题 |