zoukankan      html  css  js  c++  java
  • 捣鼓Haskell

      最近想学这门语言,于是做了一些准备工作,配置好一切后,打算玩一玩。

      先扔一段官方简介:

    Introduction

    Haskell is a computer programming language. In particular, it is a polymorphically statically typedlazypurely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on the lambda calculus, hence the lambda we use as a logo.

      Haskell 的好处(google翻译):

    • 大大提高了程序员的工作效率(爱立信在使用电话软件的一组实验中使用Erlang,一种类似于Haskell的函数式编程语言测量了9到25之间的改进因子)。
    • 更短,更清晰,更易维护的代码。
    • 更少的错误,更高的可靠性。
    • 程序员和语言之间较小的“语义鸿沟”。
    • 交货时间更短。

    Haskell是一种广泛的语言,适用于各种应用程序。它特别适用于需要高度可修改和可维护的程序。

    软件产品的许多生命都花在规范, 设计维护上,而不是编程中函数式语言对于编写可以实际执行(因此经过测试和调试)的规范而言是极好的。这样的规范最终程序的第一个原型。

    程序也相对容易维护,因为代码更短,更清晰,副作用的严格控制消除了一大类无法预料的交互。

      从上面了解介绍到Haskell是一种函数式语言,那么什么是函数式语言?了解函数式语言前,我先了解一点lambda演算函数式编程的历史。

      然后通过前面的一些资料,大概了解到函数式编程与以往C/Java等语言的最大不同之处在于,后者是命令式语言,他们必须按照指令一条一条的执行,一个程序中每一条指令都是不可缺少的。所以函数式编程是一种非冯诺依曼体系结构的编程方式。比较命令式,函数式更符合人的行为,函数式程序代码很直观,他们就像简明的数学表达式一样。

      显然C++/python等的lambda表达式就是函数式的语法。

      然后,一点自己体验GHCI命令行界面的记录:

    按 ctrl + L 是清屏;
    按 ctrl + I 显示506个操作/运算命令符?(display all 506 possibilities)
    按 ctrl + J 等于按回车键;
    按 ctrl + R 可以通过输入字符/字串匹配查找键入过的命令中出现过的输入字符/字串的命令;
    按 ctrl + S 与上一个类似;
    按 ctrl + P 可以向前查找键入过的命令;
    按 ctrl + D 删除当前光标位置上的字符,如果没有字符且使用该命令前键入的是其他不显示命令(比如退格键、其他ctrl命令),则退出GHCI;
    按 ctrl + A 将光标移动到字符串的第一个字符上;
    按 ctrl + E 将光标移动到最后一个字符后面;
    按 ctrl + F 是将光标往后移动一个字符;
    按 ctrl + K 是删除当前光标位置上及之后的所有字符
    按 ctrl + W 删除当前光标位置以前的字符直到有一个空格停止;
    按 ctrl + T 可交换当前光标位置上的字符与光标位置前一个字符的位置,交换后光标位置不变,如果光标在字符串后,则交换光标前两个字符之间的位置;
    按 ctrl + C 可退出GHCI,也可换行。
    
    键入 ‘:quit’ 退出GHCI。
    
    键入命令 ‘:?’ ro ‘:help’ 可以查看一些命令。

      最后,给一个示例:

  • 相关阅读:
    OL8.0静默安装Oracle 19C
    MYSQL GTID 复制
    MYSQL异步复制
    YUM方式安装MYSQL5.7
    【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
    【网友的】《一个程序猿的生命周期》读后感
    连载《一个程序猿的生命周期》-22.缺了一条腿的公司
    续评《遇到一位ITer,一位出租车司机,必看》
    遇到一位ITer,一位出租车司机,必看。
    连载《一个程序猿的生命周期》-21.而立之年,第一次跳槽,寻求转型
  • 原文地址:https://www.cnblogs.com/darkchii/p/8613146.html
Copyright © 2011-2022 走看看