nim 是一门风格类似python的静态编译型语言,官方网站:http://nim-lang.org

如果你想折腾nim的编辑环境,可以用sublime text3 +插件nimlime,notepad++,atom也有相应的插件,想折腾可以自己尝试,这里先不细说。

我最近想入门nim,用nim实现projecteuler的解题是个很好的练习方式,那么从第一题开始吧:

projecteuler 第一题链接: https://projecteuler.net/problem=1

题目大意是:计算1000以内是3或者5的倍数的总和。

看了一些教程加上查了查官方文档,写出下面的nim程序:

#https://projecteuler.net/problem=1
var result:int = 0
for r in 1..999:
if (r mod 3) == 0 or (r mod 5) == 0:
result += r echo result

像这样的简单的题目,很多人都贴了python ruby haskell之类语言的一行流的代码。nim中有没有list comprehension呢?

搜索了一下,还真有。(官方文档:)[http://nim-lang.org/docs/future.html#[].m,ListComprehension,untyped,untyped]

丧心病狂一行流:

import future;import math;echo sum(lc[r | (r <- 1..999,r mod 3 == 0 or r mod 5 == 0), int])

我尝试解释一下这行代码的意思:

list compprehension在python中对应的中文翻译是列表解释或者列表推导,

2016年10月11日 05:06:38 codegay

05-01 00:12