haskell(1)

本博客所有内容是原创,未经书面许可,严禁任何形式的转载。

http://blog.csdn.net/u010255642


    Haskell是一种标准化的,通用的纯函数式编程语言,有非限定性语义强静态类型,命名源自美国逻辑学家哈斯凯尔·加里,他在数学逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一类对象”。作为一门函数式编程语言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。
    Haskell具有“证明即程序、命题为类型”的特征 ,Haskell语言的最重要的两个执行环境是GHC和Hugs。Haskell的主要实现——GHC是个解释器,也是个原生代码编译器,它可以在大多数平台运行,在并发和并行上有高性能实现,有 丰富的类型系统,包括一些创新,如广义代数数据类型和类型族。我们在http://www.haskell.org/haskellwiki/Haskell下载GHC并安装。

  我们进入ghc后,一般默认使用haskell的 prelude库,prelude是haskell的标准库,定义了很多常数,如:

Prelude> pi

3.141592653589793
Prelude>

同时prelude库也提供大量的常用函数以供使用

一、简单的算术与逻辑运算

Prelude> 3+(-5)
-2
Prelude> -5 +3
-2

Prelude> 3+(-5)
-2
Prelude> -5 +3
-2

Prelude> True&&False
False
Prelude> True||False
True
Prelude> not True
False
Prelude> not False
True
Prelude> 5==6
False
Prelude> 12==12
True
Prelude> 12<=32
True
Prelude> 12>=33
False
Prelude> "hello"=="hello"
True
Prelude> "hello"=="helloworld"
False
Prelude>

 

注意不等于的操作符是”/=”,这些运算要求运算的对象类型匹配

比如,下面的操作将数字与字符串直接运算将导致失败

Prelude> 5+"helo"
<interactive>:17:2:
    No instance for (Num [Char])
      arising from a use of `+'
    Possible fix: add an instance declaration for (Num [Char])
    In the expression: 5 + "helo"
    In an equation for `it': it = 5 + "helo"
Prelude>

Prelude> 5=="5"


<interactive>:18:1:
    No instance for (Num [Char])
      arising from the literal `5'
    Possible fix: add an instance declaration for (Num [Char])
    In the first argument of `(==)', namely `5'
    In the expression: 5 == "5"
    In an equation for `it': it = 5 == "5"


这些操作用到的都是函数,包括*、+、-等,可能我们并没有意识到,因为这些函数称为中缀函数,我们把它挤入参数之中,很多函数不是我们

经常看到的前缀函数。

haskell的前缀函数书写方式是:函数名后跟用空格分隔的参数列表



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值