相关疑难解决方法(0)

在Haskell,Python和Ruby中列出理解

我已经开始将项目Euler站点作为一种学习Haskell的方法,并改进我的Python和Ruby.我认为Haskell和Python版本都可以,但我确信Ruby必须有一个更简洁的方法.

这不是关于如何使一种语言看起来像另一种语言.

这是问题1:

问:添加1000以下的所有自然数,即3或5的倍数.

哈斯克尔:

sum [ x | x <- [1..999], mod x 3 == 0 || mod x 5 == 0 ]
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

sum ( [ x for x in range(1,1000) if x % 3 == 0 or x % 5 == 0 ] )
Run Code Online (Sandbox Code Playgroud)

红宝石:

(1..999) . map {|x| x if x % 3 == 0 || x % 5 == 0 } . compact . inject(:+)
Run Code Online (Sandbox Code Playgroud)

他们都给出了相同的答案.


好的,所以Python可以成为:

sum ( x for …
Run Code Online (Sandbox Code Playgroud)

ruby python haskell list-comprehension

14
推荐指数
1
解决办法
2797
查看次数

标签 统计

haskell ×1

list-comprehension ×1

python ×1

ruby ×1