Nil*_*ect 2 language-agnostic algorithm functional-programming
我一直在考虑编程语言设计,并从维基百科上的声明性编程的定义:
这与命令式编程形成对比,命令式编程需要运行算法的详细描述.
进一步向下:
......任何不必要的编程风格....
然后它继续表达功能语言,因为它们不是必要的,它们本质上是声明性的.
但是,这让我想知道,纯粹的函数式编程语言能够解决任何算法问题,还是基于该语言中可用的函数的约束?
我最感兴趣的是关于这个主题的一般想法,虽然如果具体的例子可以说明这一点,我当然欢迎他们.
dsi*_*cha 13
是的,Haskell,Erlang等是图灵完整的语言.原则上,您不需要可变状态来解决问题,因为您始终可以创建新对象而不是改变旧对象.当然,Brainfuck也是图灵完成的.换句话说,仅仅因为算法可以用函数式语言表达并不意味着它不是非常尴尬.
好了,教会和图灵provied这是可能的,但我们究竟要怎样做什么?
以纯函数式重写命令式代码是我经常分配给本科生的一项练习:
有时出来的是混乱,但结果往往是出奇的优雅.唯一真正的诀窍是不传递永不改变的参数,而是将它们绑定在外部环境中.
归档时间: |
|
查看次数: |
724 次 |
最近记录: |