由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Joke版 - Re: 连王垠都被P了,老中码农这行真是没得混 (转载)
相关主题
王垠的[40 行代码]: 普通琐男码工们都跪安吧! (转载)性学女硕士出家 导师哽咽表示支持
虞姬人选终落定 陆川:男人看了她会妻离子散(组图)美国最舒服的机场是旧金山SFO
老姐:有套么,要不要我借一个给你?我瞬间尴尬了韩立与“兽兽”,不得不说的故事(转自起点) zz
女生怎样找到好BF(本文同样也适合gg找mm……)【经验交流】哥给女友刮毛毛的时候,顺便把自己的也刮了
女生怎样找到好BF(本文同样也适合gg找mm……) (转载)微薄段子
2005 TOYOTA CAMRY XLE, in GREAT condition (转载)王垠: 图灵的光环 (转载)
杀人犯潜逃17年当上住持开上奥迪 担任政协委员zz王垠:未来计划 (转载)
头发很重要,衣饰也很重要 (转载)Re: 谁把我写给omniscience的帖子给删了 (转载)
相关话题的讨论汇总
话题: lambda话题: cps话题: cps1话题: ctx话题: fact
进入Joke版参与讨论
1 (共1页)
H********g
发帖数: 43926
1
【 以下文字转载自 Military 讨论区 】
发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
标 题: Re: 连王垠都被P了,老中码农这行真是没得混 (转载)
发信站: BBS 未名空间站 (Thu May 11 00:34:42 2017, 美东)
据说99%的码工见了王垠的40行code之后五花大绑自惭形秽:
王垠40行代码解析
http://wineway.pw/project1/2017/04/24/1/
;; A simple CPS transformer which does proper tail-call and does not
;; duplicate contexts for if-expressions.
;; author: Yin Wang ([email protected]/* */)
(load "pmatch.scm")
(define cps
(lambda (exp)
(letrec
([trivial? (lambda (x) (memq x '(zero? add1 sub1)))]
[id (lambda (v) v)]
[ctx0 (lambda (v) `(k ,v))] ; tail context
[fv (let ([n -1])
(lambda ()
(set! n (+ 1 n))
(string->symbol (string-append "v" (number->string n)))))]
[cps1
(lambda (exp ctx)
(pmatch exp
[,x (guard (not (pair? x))) (ctx x)]
[(if ,test ,conseq ,alt)
(cps1 test
(lambda (t)
(cond
[(memq ctx (list ctx0 id))
`(if ,t ,(cps1 conseq ctx) ,(cps1 alt ctx))]
[else
(let ([u (fv)])
`(let ([k (lambda (,u) ,(ctx u))])
(if ,t ,(cps1 conseq ctx0) ,(cps1 alt ctx0))))
])))]
[(lambda (,x) ,body)
(ctx `(lambda (,x k) ,(cps1 body ctx0)))]
[(,op ,a ,b)
(cps1 a (lambda (v1)
(cps1 b (lambda (v2)
(ctx `(,op ,v1 ,v2))))))]
[(,rator ,rand)
(cps1 rator
(lambda (r)
(cps1 rand
(lambda (d)
(cond
[(trivial? r) (ctx `(,r ,d))]
[(eq? ctx ctx0) `(,r ,d k)] ; tail call
[else
(let ([u (fv)])
`(,r ,d (lambda (,u) ,(ctx u))))])))))]))
])
(cps1 exp id))))
;;; tests
;; var
(cps 'x)
(cps '(lambda (x) x))
(cps '(lambda (x) (x 1)))
;; no lambda (will generate identity functions to return to the toplevel)
(cps '(if (f x) a b))
(cps '(if x (f a) b))
;; if stand-alone (tail)
(cps '(lambda (x) (if (f x) a b)))
;; if inside if-test (non-tail)
(cps '(lambda (x) (if (if x (f a) b) c d)))
;; both branches are trivial, should do some more optimizations
(cps '(lambda (x) (if (if x (zero? a) b) c d)))
;; if inside if-branch (tail)
(cps '(lambda (x) (if t (if x (f a) b) c)))
;; if inside if-branch, but again inside another if-test (non-tail)
(cps '(lambda (x) (if (if t (if x (f a) b) c) e w)))
;; if as operand (non-tail)
(cps '(lambda (x) (h (if x (f a) b))))
;; if as operator (non-tail)
(cps '(lambda (x) ((if x (f g) h) c)))
;; why we need more than two names
(cps '(((f a) (g b)) ((f c) (g d))))
;; factorial
(define fact-cps
(cps
'(lambda (n)
((lambda (fact)
((fact fact) n))
(lambda (fact)
(lambda (n)
(if (zero? n)
1
(* n ((fact fact) (sub1 n))))))))))
;; print out CPSed function
(pretty-print fact-cps)
;; =>
;; '(lambda (n k)
;; ((lambda (fact k) (fact fact (lambda (v0) (v0 n k))))
;; (lambda (fact k)
;; (k
;; (lambda (n k)
;; (if (zero? n)
;; (k 1)
;; (fact
;; fact
;; (lambda (v1) (v1 (sub1 n) (lambda (v2) (k (* n v2))))))))))
;; k))
((eval fact-cps) 5 (lambda (v) v))
;; => 120
o****p
发帖数: 9785
2
看不懂,这什么乱七八糟的?咱最多也就理解到perl,python的级别了,兰巴达是个啥?

【在 H********g 的大作中提到】
: 【 以下文字转载自 Military 讨论区 】
: 发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
: 标 题: Re: 连王垠都被P了,老中码农这行真是没得混 (转载)
: 发信站: BBS 未名空间站 (Thu May 11 00:34:42 2017, 美东)
: 据说99%的码工见了王垠的40行code之后五花大绑自惭形秽:
: 王垠40行代码解析
: http://wineway.pw/project1/2017/04/24/1/
: ;; A simple CPS transformer which does proper tail-call and does not
: ;; duplicate contexts for if-expressions.
: ;; author: Yin Wang ([email protected]/* */)

y****i
发帖数: 12114
3
这也不止40行啊
G**Y
发帖数: 33224
4
只能说这语言不好。
可维护性太差。
要比得瑟,还有会用机器语言的呢

【在 H********g 的大作中提到】
: 【 以下文字转载自 Military 讨论区 】
: 发信人: wsnonline (卫所南次郎-哥们儿要火啦!), 信区: Military
: 标 题: Re: 连王垠都被P了,老中码农这行真是没得混 (转载)
: 发信站: BBS 未名空间站 (Thu May 11 00:34:42 2017, 美东)
: 据说99%的码工见了王垠的40行code之后五花大绑自惭形秽:
: 王垠40行代码解析
: http://wineway.pw/project1/2017/04/24/1/
: ;; A simple CPS transformer which does proper tail-call and does not
: ;; duplicate contexts for if-expressions.
: ;; author: Yin Wang ([email protected]/* */)

c******n
发帖数: 16666
5
老王之前那个abc女友呢 还有个艺术系的女友呢?
老王水平够高 其实就差个管着他的老婆。。。
意气用事了 冲动了 老婆可以拿着小黑屋的房贷单子摔脸 这种。。
c******o
发帖数: 1184
6
lambda还是蛮好的
python也有lambda的功能

啥?

【在 o****p 的大作中提到】
: 看不懂,这什么乱七八糟的?咱最多也就理解到perl,python的级别了,兰巴达是个啥?
l*****o
发帖数: 19235
7
看完了突然觉得程序员的经历被彻底否定了,连读都读不懂牛人的代码
n****4
发帖数: 12553
8
two questions.
what is this ?
what is it for ?
o****p
发帖数: 9785
9
We don't make a living with lambda, who cares?

【在 l*****o 的大作中提到】
: 看完了突然觉得程序员的经历被彻底否定了,连读都读不懂牛人的代码
o****p
发帖数: 9785
10
真要是牛人就自己搞个啥东西出来让人崇拜一下。靠写几个别人看不懂的东西然后
whining说别人都是蠢蛋,自己最牛逼,只能让我想起祢衡来。

【在 l*****o 的大作中提到】
: 看完了突然觉得程序员的经历被彻底否定了,连读都读不懂牛人的代码
相关主题
2005 TOYOTA CAMRY XLE, in GREAT condition (转载)性学女硕士出家 导师哽咽表示支持
杀人犯潜逃17年当上住持开上奥迪 担任政协委员zz美国最舒服的机场是旧金山SFO
头发很重要,衣饰也很重要 (转载)韩立与“兽兽”,不得不说的故事(转自起点) zz
进入Joke版参与讨论
n****4
发帖数: 12553
11
以前费曼在某校有个讲座,期间,一个新手问自旋为半拉的粒子为什么要遵守费米迪拉
克统计。费曼说好的,我写个大学新生水平的讲义来解释这个事。过了几天,费曼道歉
说,对不起,我使了劲,就是没法用一年级水平的东西来说这个事,这实际上说明我们
对你这个问题还根本不懂。

【在 o****p 的大作中提到】
: 真要是牛人就自己搞个啥东西出来让人崇拜一下。靠写几个别人看不懂的东西然后
: whining说别人都是蠢蛋,自己最牛逼,只能让我想起祢衡来。

v***a
发帖数: 903
12
为什么逗号的前面有空格?
n**n
发帖数: 626
13
read SICP, used to be the first programming course in MIT EECS 6001. the
book is
worth reading. although they teach python now somehow.
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-
001-structure-and-interpretation-of-computer-programs-spring-2005/
n**n
发帖数: 626
14
Yin is kind of success by doing something special
there are lots of interesting, unique guys in lisp community. reading their
blogs are quite fun, like this one
http://tianchunbinghe.blog.163.com/
https://github.com/binghe
http://weibo.com/tianchunbinghe?is_hot=1#_rnd1494567609148
"田春冰河
4月10日 17:44 来自 微博 weibo.com
[3/3] 今天是我花 2500 美元买了生平第一个正版软件(LispWorks)10 周年纪念日。
2007 年国际 Lisp 会议期间 LispWorks 罕见地史无前例地半价优惠(后来也再没有优
惠过),当时我月薪税前 5000 元,有时连饭都吃不上,笔记本电脑是公司发的,纯
32 位处理器,但我跟老板借钱买了个 64 位 Linux 版。 ​​​&#
8203;"
I really admire this..
n**n
发帖数: 626
15
https://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Quoting
.html

【在 v***a 的大作中提到】
: 为什么逗号的前面有空格?
n**n
发帖数: 626
16
LOL
楼主面临的问题很多前辈高手也遇到过,这样发展下去最终的结局有四种:
1. 学遍各种语言,发现每种语言都有缺陷,不如自己从头创造一个,所谓开宗立派,
这是 @王垠
2. 学遍各种语言,发现机器语言不过如此,兴趣转向自然语言处理、语言学乃至晦涩
艰深的梵语,所谓得义忘言,这是 @田春冰河
3. 学遍各种语言,发现语言一直在变,不变的是编辑器,之后潜心于编辑器的开发,
所谓买椟还珠,这是 @李杀
4. 学遍各种语言,发现人言纷纷,皆是红尘俗事,最终超然世外,步入空门,所谓蝉
蜕尘埃,这是 @胡正
以上四位并称中文编程界四大暗黑天王。楼主觉得哪种比较炫酷呢?
www.yinwang.org
tianchunbinghe.blog.163.com
www.xahlee.org
www.huzheng.org
H********g
发帖数: 43926
17
我觉得搞语言入迷真是本末倒置。

【在 n**n 的大作中提到】
: LOL
: 楼主面临的问题很多前辈高手也遇到过,这样发展下去最终的结局有四种:
: 1. 学遍各种语言,发现每种语言都有缺陷,不如自己从头创造一个,所谓开宗立派,
: 这是 @王垠
: 2. 学遍各种语言,发现机器语言不过如此,兴趣转向自然语言处理、语言学乃至晦涩
: 艰深的梵语,所谓得义忘言,这是 @田春冰河
: 3. 学遍各种语言,发现语言一直在变,不变的是编辑器,之后潜心于编辑器的开发,
: 所谓买椟还珠,这是 @李杀
: 4. 学遍各种语言,发现人言纷纷,皆是红尘俗事,最终超然世外,步入空门,所谓蝉
: 蜕尘埃,这是 @胡正

N*****m
发帖数: 42603
18
谈不上本末倒置。SIGPLAN是ACM的一大重要分支。

【在 H********g 的大作中提到】
: 我觉得搞语言入迷真是本末倒置。
w*x
发帖数: 3456
19
胡正是写stardict的那个吗?我觉得单就这个成就他就比王垠强了

【在 n**n 的大作中提到】
: LOL
: 楼主面临的问题很多前辈高手也遇到过,这样发展下去最终的结局有四种:
: 1. 学遍各种语言,发现每种语言都有缺陷,不如自己从头创造一个,所谓开宗立派,
: 这是 @王垠
: 2. 学遍各种语言,发现机器语言不过如此,兴趣转向自然语言处理、语言学乃至晦涩
: 艰深的梵语,所谓得义忘言,这是 @田春冰河
: 3. 学遍各种语言,发现语言一直在变,不变的是编辑器,之后潜心于编辑器的开发,
: 所谓买椟还珠,这是 @李杀
: 4. 学遍各种语言,发现人言纷纷,皆是红尘俗事,最终超然世外,步入空门,所谓蝉
: 蜕尘埃,这是 @胡正

N*****m
发帖数: 42603
20


【在 w*x 的大作中提到】
: 胡正是写stardict的那个吗?我觉得单就这个成就他就比王垠强了
相关主题
【经验交流】哥给女友刮毛毛的时候,顺便把自己的也刮了王垠:未来计划 (转载)
微薄段子Re: 谁把我写给omniscience的帖子给删了 (转载)
王垠: 图灵的光环 (转载)Taking Rat Tail To Whole New Level! (ZZ)
进入Joke版参与讨论
n****4
发帖数: 12553
21
那么这个胡正最后遁入空门是什么意思?

【在 N*****m 的大作中提到】
: 是
N*****m
发帖数: 42603
22
楼上都给了链接啊,你自己点进去看看就知道了

【在 n****4 的大作中提到】
: 那么这个胡正最后遁入空门是什么意思?
n****4
发帖数: 12553
23
这哥们是个神人啊

【在 N*****m 的大作中提到】
: 楼上都给了链接啊,你自己点进去看看就知道了
n*******0
发帖数: 2002
24
就是字面意思,去这位老哥的主页看看就知道了。

【在 n****4 的大作中提到】
: 那么这个胡正最后遁入空门是什么意思?
S*****e
发帖数: 6676
25
遁入空门了还整这些?
a*o
发帖数: 19981
26
属实,沉迷于写这种看起来很牛逼的code其实没什么卵用,大project里最好的code是
逻辑清晰注释充足,新手都能看懂,易用易维护易扩展。往往看起来越牛逼的code其实
越是废柴,三五天大家看完热闹就废掉了。


: 我觉得搞语言入迷真是本末倒置。



【在 H********g 的大作中提到】
: 我觉得搞语言入迷真是本末倒置。
f****p
发帖数: 18483
27
遁入空门其实说的是个故事。有一天下大雨,可巧前一天晚上井盖被偷了,结果一脚踩
空,遁入空门也!


: 遁入空门了还整这些?



【在 S*****e 的大作中提到】
: 遁入空门了还整这些?
v*******x
发帖数: 108
28
牛人!
www.yinwang.org
tianchunbinghe.blog.163.com
www.xahlee.org
www.huzheng.org
H********g
发帖数: 43926
29
我还以为是投入某老师门下修炼

【在 f****p 的大作中提到】
: 遁入空门其实说的是个故事。有一天下大雨,可巧前一天晚上井盖被偷了,结果一脚踩
: 空,遁入空门也!
:
:
: 遁入空门了还整这些?
:

S*****e
发帖数: 6676
30
卧槽,真的假的?

【在 f****p 的大作中提到】
: 遁入空门其实说的是个故事。有一天下大雨,可巧前一天晚上井盖被偷了,结果一脚踩
: 空,遁入空门也!
:
:
: 遁入空门了还整这些?
:

1 (共1页)
进入Joke版参与讨论
相关主题
Re: 谁把我写给omniscience的帖子给删了 (转载)女生怎样找到好BF(本文同样也适合gg找mm……) (转载)
Taking Rat Tail To Whole New Level! (ZZ)2005 TOYOTA CAMRY XLE, in GREAT condition (转载)
台湾同胞买不上房,CCTV这心都快操碎了 (转载)杀人犯潜逃17年当上住持开上奥迪 担任政协委员zz
车祸,害人啊!头发很重要,衣饰也很重要 (转载)
王垠的[40 行代码]: 普通琐男码工们都跪安吧! (转载)性学女硕士出家 导师哽咽表示支持
虞姬人选终落定 陆川:男人看了她会妻离子散(组图)美国最舒服的机场是旧金山SFO
老姐:有套么,要不要我借一个给你?我瞬间尴尬了韩立与“兽兽”,不得不说的故事(转自起点) zz
女生怎样找到好BF(本文同样也适合gg找mm……)【经验交流】哥给女友刮毛毛的时候,顺便把自己的也刮了
相关话题的讨论汇总
话题: lambda话题: cps话题: cps1话题: ctx话题: fact