• List Comprehension in Ruby at 2015年01月12日

    #7 楼 @luikore 恩,看懂了,这个解法是得到一个合法解就返回了,不会求出所有的解。

  • List Comprehension in Ruby at 2015年01月12日

    #2 楼 @luikore 你这个解有错误,box 这个函数只包含了一个块内对角线三个元素的下标。

    另外这行代码

    ds.find {|d| a[x] = d; return r if (r = f x, a) }
    

    的逻辑有问题吧,if (r = f x, a) 永远都是真,那么程序并不会尝试 ds 里面所有的值,每次都是尝试了第一个就返回了。 而且在 block 中加 return 语句的写法也太诡异了。。。

    关于 list comprehension,这里例子可能还不是很典型,之前见过这样一个例子挺好的: 在每条边都小于 100 的三角形中,找出所有直角三角形,并列出三条边的长度

    [(a,b,c) | a<-[1..100],b<-[1..a],c<[1..b],c^2+b^2==a^2]
    

    map 加 filter 搞不定 list comprehension 哦,起码要先来个笛卡尔积。

  • #52 楼 @sefier 问句题外话,SQL99 的标准哪里可以下到?