函数式编程
文章平均质量分 93
Jtag特工
代码和人工智能老兵
展开
-
前端开发函数式编程入门
前端开发函数式编程入门函数式编程是一门古老的技术,从上个世纪60年代Lisp语言诞生开始,各种方言层出不穷。各种方言带来欣欣向荣的生态的同时,也给兼容性带来很大麻烦。于是更种标准化工作也在不断根据现有的实现去整理,比如Lisp就定义了Common Lisp规范,但是一大分支scheme是独立的分支。另一种函数式语言ML,后来也标准化成Standard ML,但也拦不住另一门方言ocaml。后来的实践干脆成立一个委员会,定义一个通用的函数式编程语言,这就是Haskell。后来Haskell被函数式原教旨主义原创 2021-08-16 22:34:15 · 229 阅读 · 0 评论 -
ocaml快餐教程(3) - 基本结构
ocaml快餐教程(3) - 基本结构分支结构ocaml中支持用if…then…else表达式。例:# let pass x = if x>=60 then "pass" else "fail" ;;val pass : int -> string = <fun># pass 60 ;;- : string = "pass"# pass 59 ;;- : string = "fail"如果要做多个分支的话,可以进行嵌套:# let a x = if x>原创 2020-11-25 21:25:33 · 645 阅读 · 0 评论 -
ocaml快餐教程(2) - 定义变量与函数
ocaml快餐教程(2) - 定义变量与函数上一节我们主要介绍了ocaml的基本数据类型。在这些基本数据类型的基础上,我们可以组成更复杂的数据结构,比如我们用逗号分隔一些类型的值,就构成了元组。比如元组(1, 10.),就一个int * float类型的元组。# (1,10.);;- : int * float = (1, 10.)再例如,由int64, int32, nativeint, int, float构成的元组:# 1L, 1l, 1n, 1, 1. ;;- : int64 * i原创 2020-11-24 21:01:15 · 629 阅读 · 0 评论 -
ocaml快餐教程(1) - 强类型语言
ocaml快餐教程(1) - 强类型语言Keep说:自律给我自由。在汽车、航天、铁路等高可靠性要求的代码中,经常要求使用MISRA C/C++标准,该标准对于C语言中不同整数类型之间的赋值有比较严格的要求。有些同学对此叫苦不迭,觉得在没有意义的修复上浪费了太多的时间。如果他们学习了ocaml语言的话,就会觉得这样的要求是天经地义的。在ocaml中,浮点数进行加减乘除运算做用的运算符跟整数是不一样的。比如我们在ocaml中计算1+2,这个OK:# 1 + 2 ;;- : int = 3我们想计原创 2020-11-23 20:21:42 · 1023 阅读 · 0 评论 -
Haskell快餐教程(1) - 初见
Haskell快餐教程(1) - 初见Haskell是一门由委员会发明的纯函数式语言。最早的标准制定于1990年,后来在1998年有较大的修订。最新的标准是2010年推出的,具体内容可以在这里看到:https://www.haskell.org/onlinereport/haskell2010/编译器我们可以使用ghc: https://www.haskell.org/ghc/ghc本身是个编译器,但是也提供了一个交互式的环境ghci. 我们后面的操作都以ghci为例。数据类型Haskell是门静原创 2020-08-15 18:24:00 · 604 阅读 · 0 评论 -
Standard ML快餐教程(1) - 初识
Standard ML快餐教程(1) - 初识好久没写快餐教程了,下面开始一个新的系列,关于函数式编程语言的系列。打算写三种语言:Standard ML,ocaml和Haskell。这几门语言都不是新贵了,其中Standard ML的知名度可能最低。因为ML系列的影响力,其实我们已经从新的语言如rust等中学到过这些老语言的很多知识了。现在我们可能只要将它们还原回去就好。运行环境Standard ML,顾名思义,是ML语言的一种标准规范,主要的版本有SML 90和SML 97。标准的实现就有很多种原创 2020-07-30 20:08:29 · 1605 阅读 · 2 评论