免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2990 | 回复: 6
打印 上一主题 下一主题

为什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-29 22:11 |只看该作者 |倒序浏览
为什么有函数式编程,它有一些别的语言不具有的优点,譬如哪些,它在哪些时候表现好,它的应用,这是一种什么思想,求推荐博文或书籍,之前没有接触过LISP等语言,只是听过Lisp,并未理解。求推荐好的理解Scheme的语言,scala还是lisp?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2011-10-30 12:20 |只看该作者
回复 1# red0602


    先到 Wikipedia 上做做功課吧。

论坛徽章:
0
3 [报告]
发表于 2011-10-30 15:29 |只看该作者
回复 2# MMMIX


    不知道理解对不对,自己初步看了认为是
因为函数式编程优点是没有中间状态,所以适合并发编程

问题是
1、这种没有中间状态是不是意味着每次计算都是从最初状态开始计算,这样应该很耗cpu的资源(很多重复操作)。2、如果要讨论副作用,那每一个操作都是有副作用的,当把函数式翻译成很多条机器指令后,不知道哪一条指令期间会发生中断,所以不能理解函数式编程对副作用的消除是不是真的做到了。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2011-10-30 15:57 |只看该作者
    不知道理解对不对,自己初步看了认为是
因为函数式编程优点是没有中间状态,所以适合并发编程

何謂「中間狀態」?

问题是
1、这种没有中间状态是不是意味着每次计算都是从最初状态开始计算,这样应该很耗cpu的资源(很多重复操作)。


顯然不是。

2、如果要讨论副作用,那每一个操作都是有副作用的,当把函数式翻译成很多条机器指令后,不知道哪一条指令期间会发生中断,所以不能理解函数式编程对副作用的消除是不是真的做到了。
red0602 发表于 2011-10-30 15:29



    你沒聽說過原子操作麼?FP 裡面對副作用的控制和實現原子操作是類似的。

论坛徽章:
0
5 [报告]
发表于 2011-10-30 16:24 |只看该作者
何謂「中間狀態」?

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.

顯然不是。

呵呵,那是怎么处理的啊

    你沒聽說過原子操作麼?FP 裡面對副作用的控制和實現 ...
MMMIX 发表于 2011-10-30 15:57


可是没看见锁机制啊,这是FP底层实现的吗,呵呵,没研究过,但是假如是这样依靠锁机制实现,那么,它和命令式的语言自己加大锁密度的控制提高并发不是一样了吗?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2011-10-30 17:05 |只看该作者
何謂「中間狀態」?

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.

不要對這裡的 state 望文生義。

可是没看见锁机制啊,这是FP底层实现的吗,呵呵,没研究过,但是假如是这样依靠锁机制实现,那么,它和命令式的语言自己加大锁密度的控制提高并发不是一样了吗?
red0602 发表于 2011-10-30 16:24



    我說的是它們的原理類似,又不是說就是一樣的。另外,我看你把 state 和 side effect 弄混了。

如果你對 FP 的實現有興趣的話,可以看看 The Implementation of Functional Programming Languages;如果只是對 FP 的使用有興趣,就選一門 FP 語言來學吧,個人建議 Haskell。這些東西還是要實際使用,看別人說的再多你也不可能真正理解。

论坛徽章:
0
7 [报告]
发表于 2011-10-30 19:20 |只看该作者
回复 6# MMMIX


  呵呵  thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP