看《SICP》看得我都快精神分裂了。
这书对自己的思维方式,以及对数据,程序的理解,都是种挑战。
用groovy重写了一下第二章中对pair的两种特别诡异的实现。
法1:
def make_pair(x, y) {
return { i -> return i?y:x; }
}
def getx(pair) {
return pair(0);
}
def gety(pair) {
return pair(1);
}
def p = make_pair(3, 7);
println gety(p);
法2:
def mp2(x, y) {
return { func -> func(x, y) };
}
def getx2(pair) {
return pair( { p, q -> p } );
}
println getx2(mp2(3, 7));
阅读(247) | 评论(0) | 转发(0) |