haskell(3)

来源:互联网 发布:sql left join 编辑:程序博客网 时间:2024/05/28 22:09

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

http://blog.csdn.net/u010255642

在haskell中可以使用if条件语句,和其它语言一样,但是else部分必须有,不能省略,同时,因为if系列语句是一个表达式,必须有返回值。




我们定义一下自己的求绝对值的函数,将函数定义在mytest.hs中

myabs x = if x>0 
           then x
           else -x

然后,加载并运行

*Main> :l f:\pro\mytest.hs
[1 of 1] Compiling Main             ( F:\pro\mytest.hs, interpreted )
Ok, modules loaded: Main.

*Main> myabs 11

11
*Main> myabs (-11)
11
*Main> myabs (-12)
12

*Main>

我们将myabs函数改一下,将myabs改成Myabs

Myabs x = if x>0 
           then x
           else -x

*Main> :r

[1 of 1] Compiling Main             ( F:\pro\mytest.hs, interpreted )


F:\pro\mytest.hs:1:1: Not in scope: data constructor `Myabs'
Failed, modules loaded: none.
Prelude>

 提示加载失败,函数不能以大写开头

函数也可以没有参数,直接返回一个值 ,下面这个函数就类似于字符串的定义

mystr="hello,haskell"

我们重新加载一下

*Main> :r
[1 of 1] Compiling Main             ( F:\pro\mytest.hs, interpreted )
Ok, modules loaded: Main.
*Main> mystr
"hello,haskell"
*Main>