Nim:我怎样才能更接近Python语法?

时间:2015-06-18 19:00:03

标签: python nim

我知道这通常不是一个好主意,但我想让Nim更“Pythonic”。例子:

1)使用def

而不是proc

2)使用echo

代替print

3)使用readLine

而不是input

4)而不是parseJson使用json.loads

等等。

是的,可能无法更改函数和语句的行为,但我希望它 - 至少 - 看起来就像“好”旧的“Python的。

老实说,请不要解释我为什么认为这是个坏主意。我想播放并尝试一下。没有动物会受到伤害,等等。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

对于echoreadLineparseJson,您可以在system.nim和json.nim中查找其定义并定义自己的过程。这应该有效:

import json

proc print*(x: varargs[expr, `$`]) {.magic: "Echo", tags: [WriteIOEffect], sideEffect.}

proc input*(f: File): TaintedString  {.tags: [ReadIOEffect], benign.}

proc loads(p: var JsonParser): JsonNode = parseJson(p)

关于def,我认为不可能使用与proc完全相同的语法。如果你愿意,你可以想出一些def宏,它本身会产生一些proc的AST。但据我所知,定义proc的结果语法非常难看。