llr:在R中探索Clojure式的 Lisp体验
2024-05-30 08:17:14作者:翟江哲Frasier
简介
llr是一个小巧且趣味盎然的项目,它构建于R的抽象语法树(AST)之上,旨在提供一个类Clojure的Lisp方言。这个语言不是解释执行的,而是将表达式转换为R的AST,然后由R的解释器进行解析。尽管实现细节可能并不完美,但重点在于享受编程的乐趣和快速产出结果。
安装与入门
要开始使用llr,只需简单地安装以下包:
remotes::install_github("dirkschumacher/llr")
一旦安装完成,你可以直接在R中试用:
library(llr)
interp <- llr_env$new()
interp$eval("(+ 1 1)")
#> 2
或者,启动一个REPL交互环境,进一步探索:
interp <- llr_env$new()
interp$repl()
技术分析
llr支持Clojure中的多种数据类型和特殊形式,包括列表、向量、映射、符号、函数定义、元数据、宏、递归、命名空间以及读取器调度。此外,它还特别集成了R的生态系统,通过r/前缀调用R函数并处理R的数据结构。
应用场景
- 教育和实验 - 对于想要了解Lisp或Clojure语法的人来说,
llr是理想的练习场。 - 数据分析 - 利用R的强大计算能力和丰富的库,结合Clojure式的语法糖,可以编写简洁高效的代码。
- 快速原型开发 - 由于其轻便和灵活的特性,
llr适合作为快速构建原型系统的工具。
项目特点
- Clojure风格 - 提供类似Clojure的语法和编程模式,使R用户能够体验到Lisp的魅力。
- R集成 - 可以无缝调用R的函数和变量,方便处理R原生数据结构。
- 宏观语法支持 - 宏的概念使得代码能自动生成和修改,增强了代码的可扩展性。
- 命名空间管理 - 类似于Clojure的命名空间管理,有助于组织代码和避免名称冲突。
llr不仅仅是一个实验性的项目,更是一个学习、创新和乐趣共享的平台。无论是对Lisp爱好者还是R开发者,llr都值得你一试。加入我们,一起探索这个独特的编程世界吧!
登录后查看全文
热门项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
FreeSql功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin 以及 AOT。C#00
项目优选
收起
deepin linux kernel
C
27
14
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
659
4.26 K
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.54 K
894
Ascend Extension for PyTorch
Python
504
609
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
391
288
暂无简介
Dart
906
218
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
昇腾LLM分布式训练框架
Python
142
168
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
939
863
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
1.33 K
108