python的s表达式库。

shakna-isp的Python项目详细描述


ispy

python的s表达式库。


用法

目前有两种结构您会感兴趣。

一个允许您构造s表达式,另一个允许您从这些s表达式创建lambda。

from ispy import fn, slist

x = slist(fn, print, "Hello", ["World"])
x()

> Hello ['World']

slist构造一个s表达式,并将作为参数给出的任何列表也转换为slists。

fn允许您构造lambda。

两者都是可转位的。fn可设置。

即:

from ispy import fn, slist

x = slist(fn, print, "Hello", ["World"])

for i in x:
    print(i)

> <built-in function print>
> Hello
> ['World']

print(x[0])
> <built-in function print>

x[0] = list
print(x[0])
> <class 'list'>

因此,slist允许您以lisp风格创建python语句。

fn允许您将这些语句转换为函数,但fn本身仍然是一个可以修改的s表达式。

但是,当前,slist在创建后是不可变的。它可以迭代,但不能修改。


许可证

知识共享法律规范

CC0 1.0通用

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.

目的声明

世界上大多数管辖区的法律自动赋予 创作者的专有版权和相关权利(定义如下) 以及以下原作的后续所有人(均称为"所有人"): 作者身份和/或数据库(每个都是"作品"。

某些所有者希望永久放弃这些权利 为创造、文化和 科学著作("公地"),公众可以可靠和无惧地 后来的侵权索赔建立、修改、并入 以任何形式尽可能自由地工作、重用和重新分配 以及任何目的,包括但不限于商业目的。 这些拥有者可以为下议院做出贡献,以促进自由的理想 文化与创新、文化、科学的进一步生产 工作,或获得声誉或更大的分配他们的工作 通过他人的使用和努力而分离。

为了这些和/或其他目的和动机 期望额外报酬或补偿的人 将CC0与作品联系起来("担保人"),只要他或她 是作品的版权和相关权利的所有者,自愿 选择将CC0应用于该作品,并根据ITS公开分发该作品 条款,了解他或她的版权和相关权利 工作以及CC0对这些权利的含义和预期法律效力。

  1. 版权及相关权利。根据CC0提供的工作可以是 受版权和相关或相邻权利保护("版权和 相关权利)。版权和相关权利包括但不是 限于以下情况:
  2. < > >

    一、复制、改编、发行、表演、展示的权利, 沟通,翻译作品; 二。原作者和/或表演者保留的精神权利; 三、与个人形象或 作品中描绘的相似性; 四、保护作品不受不正当竞争的权利, 但须受下文第4(a)段的限制; 五、保护数据的提取、传播、使用和再利用的权利 在工作中; 六、数据库权利(如 1996年3月11日欧洲议会和理事会 保护数据库,并在任何国家实施 包括任何修订版或后续版本 指令);以及 七。其他类似、同等或相应的权利 基于适用法律或条约的世界,以及任何国家 其实现。

    1. 弃权。在允许的最大范围内,但不得违反 适用法律,宣誓人在此公开、充分、永久地, 不可撤销地、无条件地放弃、放弃和放弃 担保人的版权及相关权利和相关索赔及原因 行动,当R现在已知或未知(包括现有和 (i)在所有地区的工作中 在全球范围内,(ii)在适用法律规定的最长期限内,或 条约(包括未来的延期),(iii)在任何当前或未来 媒介和任何数量的副本,以及(iv)出于任何目的, 包括但不限于商业、广告或促销 目的("弃权")。宣誓人为每一方的利益作出弃权 公众人士,损害宣誓人的继承人和 继承人,完全同意该弃权不受 撤销、撤销、取消、终止或任何其他法律或 扰乱公众安静享受工作的公平行为 如宣誓人的明确目的声明所述。

    2. 公共许可证回退。如果弃权的任何部分出于任何原因 根据适用法律被判定为合法无效,然后 弃权应在允许的最大范围内予以保留 账户确认人的明确目的声明。另外, 如果弃权被如此判定,宣誓人在此授予每个受影响的 个人免版税、不可转让、不可分许可、非排他性, 行使担保人版权的不可撤销和无条件许可 工作中的相关权利(i)在世界各地,(ii)为 适用法律或条约规定的最长期限(包括未来 时间延长,(iii)在任何当前或将来的介质中,对于任何数量 副本,以及(iv)出于任何目的,包括 限制商业、广告或促销目的 "许可证"。许可证应自CC0生效之日起生效。 由担保人申请工作。如果许可证的任何部分 根据适用法律,理由被判定为合法无效,如 部分无效或无效不得使剩余部分无效 在这种情况下,宣誓人在此确认他或她 不会(i)行使其剩余的版权和相关权利 在工作中的权利或(ii)主张任何相关的索赔和原因 与工作相关的行动,在任何情况下都与宣誓人的行动相反 明确的目的声明。

    3. 限制和免责声明。

    4. < > >

      a.宣誓人持有的商标或专利权不得被放弃、放弃, 交回、许可或受本文件影响。 b.宣誓人按原样提供工作,不作任何陈述或 与工作有关的任何形式的保证,明示的,暗示的, 法定或其他,包括但不限于 所有权、适销性、特定用途的适用性、非 侵权,或不存在潜在或其他缺陷、准确性,或 错误的存在或不存在,无论是否可发现 在适用法律允许的最大范围内。 C.宣誓人不承担清算他人权利的责任 可适用于工程或其任何用途,包括 限制任何人对作品的版权和相关权利。 此外,宣誓人对获得任何必要的 使用本协议所需的同意、许可或其他权利 工作。 d.宣誓人理解并承认知识共享不是 本文件的一方,对 此cc0或作品的使用。

      欢迎加入QQ群-->: 979659372 Python中文网_新手群

      推荐PyPI第三方库


热门话题
java CORS不允许POST请求   java Glide gradle无法识别ModelLoader   swing Java GUI 3列边框布局   无法在安卓 10上从BroadcastReceiver启动活动   java字符串初始化问题   Java LDAP使用CN获取组DN   java告诉ThreadPoolExecutor何时应该进行或不进行   java确定本机库的路径(dll/so)   java使bean在应用程序启动时运行。EJB3/websphere6。1/Java1。5.   “F obj”中的F替换为Factory时引发java Why类型不匹配错误。编译时F是什么   使用Java8获取最有效的十进制数字   java Android仅将EditText限制为整数输入   为什么在线Java IDE解决方案抛出“错误:<identifier>expected”?   泛型如何在java中用接口重写方法   如何找到尚未关闭oracle数据库连接的java代码?   java Teradata createClob:此版本不支持该函数。这是一个bug还是一个特性?   java无限循环宽度优先搜索