zoukankan      html  css  js  c++  java
  • Haskell 差点儿无痛苦上手指南

    趁着自己重装Linux 虚拟机的机会,把安装 haskell 的过程记录一下,顺便帮那些还犹豫徘徊在haskell门外的读者入门。

    基本概念:

    Haskell

    是一门通用函数式语言,差点儿能够进行不论什么种类的开发,包含命令行,GUI,数据库,Web.源码能够跨平台: Linux,Mac, Windows, FreeBSD 等.

    Haskell 的特点:

    函数式变成风格为主,命令式风格为辅,具有严格且方便易用的类型系统。类型检查能够帮助程序猿在开发过程中避免非常多错误,并辅助组织程序的结构。

    Haskell 的开发工具:

    主要有 GHC, hugs 两种, 还有中 nhc 没用过就不说了。我们这里要安装的是 GHC,以及在 ghc 基础上的 Haskell Platform。

    GHC

    全称: Glasgow Haskell Compiler , 包括一个高效的Haskell编译器ghc,以及一个相似 python 交互环境的解释器 ghci 。GHC能够编译生成高效的可运行程序。

    Haskell Platform

    Haskell Platform 是一个打包的haskell 开发环境,包括GHC以及非常多第三方开发库,以及cabal 包管理器等。

    Cabal 又是什么?

    简单说就是 Ubuntu 的  apt-get, Perl 的 cpan , Python 的 easy_install , Ruby 的 gem 。 这么说明确了吧.

    要安装一个第三方库,仅仅须要:  cabal install lib-name 就能够了。 差点儿就这么简单。

    怎么安装 Haskell 的第三方库?

    有一个 HackageDB   相似与 Perl 的cpan 的东西,这个列表包括了 Haskell 可用的第三方库。安装用同一的方式:  cabal install libname 就能够了。 大部分的库能够非常方便的安装,只是一些第三方库会依赖一些特定系统的库,因此不是总能顺利安装。

    ===================

    安装过程

    (本文基于 Ubuntu 9.10 , 对于其它基于 apt-get 的Linux也适用。)

    1. 安装依赖库

    sudo apt-get install libedit2 libedit-dev freeglut3-dev libglu1-mesa-dev libgmp3-dev

    2. 下载 GHC

    GHC下载页面 , 选择适合的版本号下载(x86, x86_64) ,比例如以下载 x86版本号 Linux:

    wget http://haskell.org/ghc/dist/6.12.1/ghc-6.12.1-i386-unknown-linux-n.tar.bz2

    3. 安装 ghc

    $ tar jxvf ghc-6.12.1-i386-unknown-linux-n.tar.bz2

    $ cd ghc-6.12.1

    $ ./configure

    $ sudo make install

    安装完,測试下:


    4. 安装 Haskell Platform

    下载: wget http://hackage.haskell.org/platform/2010.1.0.0/haskell-platform-2010.1.0.0.tar.gz

    解压缩, ./configure , make,   make install

    make 的过程可能比較长,要编译一大堆的第三方库。

    5. Cabal 的配置

    安装完 Haskell Platform 后,会提示用户进行 cabal update , 就是更新下库的文件夹列表:

    $ cabal update

    要安装一个库,首先在 HackageDB 上找到须要的库,然后执行 cabal install 就可以:

    =====================

    Hello World

    说了这么久,最终到了我最喜欢的 Hello World 阶段了。

    GHCi  这个交互环境

    haskell 程序既能够解释运行也能够编译运行,这在开发过程中是非常方便用来调试的。

    > print "hello world"

    "hello world"

    看上去非常easy,没啥出奇的东西。以下尝试些有意思的东西:

    编译程序

    以下来写一个完整的程序,而且编译成可运行文件, 首先编写 hello.hs 文件,内容例如以下,用 ghc 编译。


    Haskell 的编辑环境

    隆重推荐 Emacs  ,Emacs 中的 Haskell-mode 在编敲代码中,帮助进行缩进、语法高亮等,配合 unicode 显示,能够得到很美丽的效果。

    另开一篇具体解释emacs 环境吧。


  • 相关阅读:
    Oracle 11g SQL Fundamentals Training Introduction02
    Chapter 05Reporting Aggregated data Using the Group Functions 01
    Chapter 01Restriicting Data Using The SQL SELECT Statemnt01
    Oracle 11g SQL Fundamentals Training Introduction01
    Chapter 04Using Conversion Functions and Conditional ExpressionsConditional Expressions
    Unix时代的开创者Ken Thompson (zz.is2120.bg57iv3)
    我心目中计算机软件科学最小必读书目 (zz.is2120)
    北京将评估分时分区单双号限行 推进错时上下班 (zz)
    佳能G系列领军相机G1X
    选购单反相机的新建议——心民谈宾得K5(转)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4344383.html
Copyright © 2011-2022 走看看