类似clojure的实用程序
clj的Python项目详细描述
CLJ
clj
是一个python模块,用于执行过多clojure和
回到python的思考中,这些distinct
,drop-while
,
cycle
、first
等。
安装
pip install clj
用法
示例
;; Clojure(println (count (distinct (filter even?(map inc coll)))))
# Pythonfromcljimportcount,distinct,filter,inc,mapeven=lambdae:~e&1print(count(distinct(filter(even,map(inc,coll)))))
注意,count()
对生成器中的两个序列都有效;在后一种情况下
它不会像len(list(g))
那样在内存中加载所有内容。
核心理念
- 默认情况下是懒惰的。所有函数都应该在任意迭代器和 返回发电机。
- 这是Python。我们保留python的语义,而不是试图复制
python中的clojure(例如,
0
和[]
在clojure中逻辑上是正确的,但在clojure中是错误的 在python中,None
不等同于空集合)。 - 不要重新发明轮子。我们不重新实现内置函数
除非他们漏掉了什么:
range
因为没有 参数来产生一个无限序列;map
和filter
在python 2中 因为他们不懒。
支架
一般的命名方案是:使用下划线而不是连字符;启动
如果其clojure对应项以?
结尾,则使用is_
函数。
序列
我们的目标是实现所有操作序列的clojure函数 (见the list here)。 它们都在iterable上工作,默认情况下返回生成器(python最接近的 相当于惰性序列)。我们不支持传感器。
Clojure | ^{ | Comment |
---|---|---|
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | Deprecated. Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | - | Use ^{ |
^{ | - | Use ^{ |
^{ | - | Use ^{ |
^{ | ^{ | |
^{ | ^{ | Deprecated. Use Python’s ^{ |
^{ | - | Use ^{ |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | Deprecated. Use Python’s ^{ |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s built-in ^{ |
^{ | - | Use ^{ |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ||
^{ | ||
^{ | ||
^{ | ^{ | |
^{ | - | |
^{ | ^{ | |
^{ | ^{ | ^{ |
^{ | ^{ | |
^{ | - | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | - | Use Python’s ^{ |
^{ | ^{ | |
^{ | - | |
^{ | - | Use Python’s built-in ^{ |
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | - | |
^{ | - | Use Python’s ^{ |
^{ | ^{ | |
^{ | - | Use the ^{ |
^{ | - | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | - | |
^{ | ^{ | |
^{ | - | Use ^{ |
^{ | ^{ | |
^{ | - | Use Python’s ^{ |
^{ | - | |
^{ | - | |
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | - | |
^{ | ||
^{ | ||
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | ^{ |
^{ | ^{ | Prefer Python’s ^{ |
^{ | - | Loop over an ^{ |
^{ | - | |
^{ | - | Use Python’s ^{ |
^{ | ^{ | |
^{ | - | Use Python’s ^{ |
^{ | - | |
^{ | - | |
^{ | - | |
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | - | Use ^{ |
^{ | ||
^{ | - | Use Python’s ^{ |
^{ | - | Use Python’s ^{ |
^{ | ||
^{ | ||
^{ |
我们还实现了count
,尽可能使用python的len
,并且
对于其他情况,在for
循环上进行回退。
功能
我们还提供各种各样的功能以及 功能。
Clojure | ^{ | Comment |
---|---|---|
^{ | ^{ | |
^{ | - | Use Python’s ^{ |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ | |
^{ | ^{ |
Clojure | ^{ | Comment |
---|---|---|
^{ | ^{ | |
^{ | ^{ |