Haskell小白初探——Haskell 安装(ubuntu12.04)
来源:互联网 发布:如何发布php网站 编辑:程序博客网 时间:2024/05/25 23:56
Haskell是一种标准化的,通用的纯函数编程语言,有非限定性语义和强静态类型。作为一门函数编程语言,主要控制结构是函数。
Haskell支持惰性求值、模式匹配、列表解析、类型类和类型多态。
Haskell的主要实现——GHC——是个解释器,也是个原生代码编译器。它可以在大多数平台运行。
Haskell Platform:
Haskell Platform 是一个打包的haskell 开发环境,包含GHC以及很多第三方开发库,以及cabal 包管理器等。
GHC:
GHC主要有三个部分组成。
- ghc是生成快速本底代码的优化编译器。
- ghci是一个交互解析器和调试器。
- runghc是一个以脚本形式(并不要首先编译)运行Haskell代码的程序。
Cabal:
cabal 简单说就是 Ubuntu 的 apt-get, Perl 的 cpan , Python 的 easy_install , Ruby 的 gem 。要安装一个第三方库,只需要: cabal install lib-name 就可以了。
我们使用Haskell Platform 进行开发。安装Haskell Platform
ubuntu下安装十分简单:
sudo apt-get update
sudo apt-get install haskell-platform
就ok了
终端输入
ghc --version 查看GHC版本:
cabal --version 查看Cabal版本:
ok 成功安装
(注:有其他安装方法,参考 http://blog.csdn.net/albert_lee/article/details/5469933。由于是10年的教程,ubuntu是9.10版本,笔者没有尝试过)
初次接触haskell:
1 使用ghci
在终端输入ghci,打开解释器:
此时输入 :set prompt "ghci> " 可变为下图状态。
尝试一些简单的算术逻辑运算
2 使用ghci编译
选择你喜欢的文本编辑器输入以下Haskell代码,存储为 “qsort.hs” 的文件:
quicksort :: Ord a => [a] -> [a]
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
(1) 在解释器下输入:
:l [file_path]
(2) 此时调用quicksort函数
输出结果。
(3) 退出解释器
输入:quit
( :?可以获得相应帮助)
3 使用ghc编译并运行你的程序。
最简单的“hello world”程序:
输入:
main = putStrLn "hello world"
保存为hello.hs
打开终端,进入hello.hs 的文件目录
输入:
ghc hello.hs -o hello
执行:
./hello
很简单,和编译C/C++一样。
接下来开始更加系统的学习吧。
——参考资料:
Haskell学习笔记(1) http://www.wuzesheng.com/?p=2265
Haskell几乎无痛苦上手指南 http://blog.csdn.net/albert_lee/article/details/5469933
- Haskell小白初探——Haskell 安装(ubuntu12.04)
- Haskell
- Haskell
- Haskell学习——类型
- Haskell学习——函数
- Haskell学习——语法
- Haskell小程序
- Haskell小例子
- Haskell Platform安装过程
- 怎样安装haskell
- Haskell学习——准备阶段
- Haskell学习(1)
- Haskell安装mysql(mac环境)
- 「学习总结-Haskell-5」Haskell 重要概念——函数
- 「学习总结-Haskell-6」Haskell 重要编程模式——Functor,Applicative,Monad
- 神奇的Haskell——“做什么”而不是“怎么做”
- Popush之Haskell语言支持——傅展升
- Haskell语言支持——何汶铬
- JAVA虚拟机垃圾回收机制
- Android实战简易教程-第二枪(Spinner下拉级联效果)
- [Android] Android开发优化之——使用软引用和弱引用
- 百度地图最新版本sdk使用系列(八)-获取当前地图中心点的经纬度并计算与当前位置的距离
- [MFC]画线
- Haskell小白初探——Haskell 安装(ubuntu12.04)
- layout
- Python入门教程--类和对象(二)
- 数据结构面试题总结6——数组:求两个数组中满足给定和的两个元素
- 常用的排序算法
- 线程协作
- iOS多线程编程
- 5.文件权限设置
- android关于清除listView(removeAllView)的所有子view的方法