最近在搞R, 准备这样搞:R当成数据库,JRI当成JDBC,R语言当成SQL, 搞一个类似hiccup的R语言dsl,用类似HoneySQL数据流组合生成r语言源码,再求值。
备注:hiccup是html的DSL, HoneySQL是sql语句拼装DSL
R本质上是Scheme,只是很简单地包了层C语法,语法仍然保持着可以使用lisp的前缀操作方式。转换成S表达式极简单,基本可以说没有工作量。R DSL的S表达式写法更爽,操作更方便,元编程更爽。

if (cond) expr ;r的正常使用方式
"if"(cond,expr) ;r的前缀方式
[:if cond expr] ;clojure的S表达式

a=1 ;r的正常使用方式
"="(a, 1) ;r的前缀方式
[:= a 1] ;clojure的S表达式

2==1 ;r的正常使用方式
"=="(2, 1) ;r的前缀方式
["==" 2 1] ;clojure的S表达式