楼主: waldeinsamkeit
523 0

python语言和lisp语言 [推广有奖]

  • 0关注
  • 0粉丝

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
230 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2016-8-17
最后登录
2018-1-26

楼主
waldeinsamkeit 发表于 2016-8-17 19:06:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  函数式编程到底有什么用呢? 我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。看一个具体的例子:
    问题:一个列表;对每一个元素平方;将平方后的数如果除3的余数为1则从列表中除去。

看解决的方法:
1。传统过程式(Python)
>>> s = [1,2,3]
>>> d = []
>>> for i in s:
    if i * i % 3 != 1:
        d.append(i * i)

        
>>> d
[9]
>>>  

2。传统函数式(Lisp)
(remove-if (lambda (n) (= (mod n 3) 1))
           (mapcar (lambda (n) (* n n))
                   '(1 2 3)))


    可以看出,函数式的程序很好的对应了我们所提问题的两个步骤,分别用 mapcar, remove-if 来实现。不过Lisp的程序确实不太好读,我们用python 和 ruby 来改进一下:

3. Python函数式:
>>> filter(lambda n: n % 3 != 1, map(lambda n:n*n, [1,2,3]))
[9]

4. Ruby 函数式:
[1,2,3].map {|n| n * n}.reject{|n| n % 3 == 1}
=> [9]

经过比较,ruby的最为简洁,而且与问题描述对应的最自然。  





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python语言 python ISP python函数 Lambda python

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-17 06:41