Date
Jul. 21st, 2024
 
2024年 6月 16日

Post: Haskell Primer 002: 函数初探

Haskell Primer 002: 函数初探

Published 12:04 Apr 11, 2016.

Created by @ezra. Categorized in #Programming, and tagged as #Haskell.

Source format: Markdown

Table of Content

通过上一篇我们简单尝试了 Haskell 语言,也许你没有察觉,其实我们自始至终都在使用着函数。

前面我们使用的运算符 +-*/ 其实都是函数,像这样置于两个参数之间调用的函数,称为中缀函数 (Infix Function)。类似的还有前缀函数 (Prefix Function),通过函数名后空格并接以参数列表的形式调用,其中参数列表也以空格分隔。

Haskell> succ 1
2
Haskell> min 100 200
100
Haskell> max 20 99
99
Haskell>

其中 succ 表示获取后继,一个整数的后继,就是比它大 1 的下一个数,例如 2 的后继为 3,而 3 的后继为 4。

我们都知道在进行数的运算时会有优先级的问题,函数调用也是这样。在 Haskell 中函数调用的优先级最高,举个例子:

Haskell> succ 2 + max 10 20
23
Haskell> succ 2 * 5
15
Haskell> succ (2 * 5)
11
Haskell>

对于前缀函数,如果其参数有两个,则可以使用一对反引号 (`) 将其包含后以中缀函数形式调用,例如:

Haskell> div 99 3
33
Haskell> 99 `div` 3
33
Haskell>

在本例中,中缀形式的调用可以增强可读性。

Pinned Message
HOTODOGO
I'm looking for a SOFTWARE PROJECT DIRECTOR / SOFTWARE R&D DIRECTOR position in a fresh and dynamic company. I would like to gain the right experience and extend my skills while working in great teams and big projects.
Feel free to contact me.
For more information, please view online résumé or download PDF
本人正在寻求任职 软件项目经理 / 软件技术经理 岗位的机会, 希望加⼊某个新鲜⽽充满活⼒的公司。
如有意向请随时 与我联系
更多信息请 查阅在线简历下载 PDF