编程功能标准的符号、图,等等
-
05-07-2019 - |
题
我有一个问题,我认为这是最好的解决通过功能性的程序。
来自一个非常必要的背景,我用程序设计的,涉及类图/说明,通信图、状态图等等。这些图表,但是,所有意味着,或者是用来描述,国家的一个系统和各种负面影响,行动有关的系统。
是否有任何标准化组图表或数学符号的设计中使用的功能程序,或是这类方案的设计最好在短功能的伪代码(给予这一功能将大大短于必须同行).
谢谢,迈克
解决方案
函数式编程有一个秘密技巧。
-
它基本上是无国籍的,所以传统的命令图并不重要。
-
大多数普通的花园式数学符号也是无国籍的。
醇>
功能设计更像是代数而不是其他任何东西。您将定义函数,并显示这些函数的组合产生所需的结果。
图表不是必需的,因为函数式编程比程序编程简单一些。它更像传统的数学符号。使用数学技术来表明您的各种功能都能做正确的事情。
其他提示
功能的程序更为方程式编写,然后编写的图表。游戏叫做 等式推理 它主要涉及到
替代等于对平等的
申请法律代数
偶尔证明的感应
这个想法是,你写的真简单的代码是"显然是正确的",然后使用等式推理,把它变成东西是更清洁和/或将更好地执行。该掌握这种技术是一个牛津大学教授名叫理查德的鸟。
例如,如果我想要简化的方案表达
(append (list x) l)
我将代等于等于像疯了似的。使用的定义 list
我得到
(append (cons x '()) l)
Subsituting体的追加我
(if (null? (cons x '()))
l
(cons (car (cons x '())) (append (cdr (cons x '())) l)))
现在我有些代法律:
(null? (cons a b)) == #f
(car (cons a b)) == a
(cdr (cons a b)) == b
和替代等于等于我得到
(if #f
l
(cons x (append '() l))
与另一项法律, (if #f e1 e2) == e2
, 我得到
(cons x (append '() l))
如果我花费的定义追加再次我得到
(cons x l)
我已经证明是等于
(append (list x) l)
- 有这种非常良好的条解释氧微积分利用动画: 解剖一只知更鸟:图形符号氧演动画减少
- 这是一个非常类似于前面,但是具有实际实施: 氧的动画师
我不知道很多关于编程功能,但这里有两件事情我已经碰到
- λ(lambda)经常用来表示一个 功能
- f ο克是用来指示功能 组成
不隶属于 StackOverflow