jshell -c Jar.jar:/opt/android-studio/lib/kotlin-runtime.jar
import lime.*
SexpressionList sexp = (SexpressionList) Lime.parse("(print 1 2 a)").get(0)
Lime lime = new Lime(sexp)
lime.defineMacro("print", "varargs", ". print varargs")
class Foo {
public static Object print(Object[] args) {
System.out.println(args);
return args;
}
}
java.lang.reflect.Method print = Foo.class.getDeclaredMethod("print", Object[].class)
lime.getHandlers().put(new Symbol("print"), print)
lime.set("a", 1)
lime.run()
lime.7z
8.2 KB
更新代码,增加了一些细节优化,macro 重写 toString,Lime 支持获取 sexp 列表和 get/set operator
duangsuse::Echo
jshell -c Jar.jar:/opt/android-studio/lib/kotlin-runtime.jar import lime.* SexpressionList sexp = (SexpressionList) Lime.parse("(print 1 2 a)").get(0) Lime lime = new Lime(sexp) lime.defineMacro("print", "varargs", ". print varargs") class Foo { public…
还可以修改一下试试
import lime.*
SexpressionList sexp = (SexpressionList) Lime.parse("(print 1 2 a (print 233 \"Hello, world\") 23232323 (print2 a))").get(0)
Lime lime = new Lime(sexp)
lime.defineMacro("print", "varargs", ". print varargs")
lime.defineMacro("print2", "varargs", ". print 233")
class Foo {
public static Object print(Object[] args) {
System.out.println(args);
return args;
}
}
java.lang.reflect.Method print = Foo.class.getDeclaredMethod("print", Object[].class)
lime.getHandlers().put(new Symbol("print"), print)
lime.set("a", 1)
lime.run()
duangsuse::Echo
还可以修改一下试试 import lime.* SexpressionList sexp = (SexpressionList) Lime.parse("(print 1 2 a (print 233 \"Hello, world\") 23232323 (print2 a))").get(0) Lime lime = new Lime(sexp) lime.defineMacro("print", "varargs", ". print varargs") lime.defineMacro("print2"…
(print 1 2 a (print 233 "Hello, world") 23232323 (print2 a))Object[1] { Object[1] { [1, 2, 1, [Ljava.lang.Object;@2a742aa2, 23232323, [Ljava.lang.Object;@3dfc5fb8] } }这里有个误解,准确的说是我自己忘记了自己写的实现...
(. print varargs) 所以应该先 args = (Object[])args[0];Forwarded from iVanilla 自然科学 & 神秘学实验研究部 (iVanilla)
Telegram
ReadHub
Linux基金会为软件巨头收购GitHub辩护 微软是开源社区贡献第一人
企业初期对开源软件的态度有些敌对,即便微软近年来积极拥抱开源,并为 OSS 社区贡献了许多力量,很多人对其 75 亿美元收购 GitHub 一事还是感到耿耿于怀 ... 该组织执行总监 Jim Zemlin 在博客上发表了一篇声明,解释微软收购 GitHub对开源世界来说实际上是个好消息,且大家应该庆祝微软的这一明智之举 ... 它们有开发和发布基于 Linux 的产品、开源了 .Net,并且是 Linux 基金会、Apache…
企业初期对开源软件的态度有些敌对,即便微软近年来积极拥抱开源,并为 OSS 社区贡献了许多力量,很多人对其 75 亿美元收购 GitHub 一事还是感到耿耿于怀 ... 该组织执行总监 Jim Zemlin 在博客上发表了一篇声明,解释微软收购 GitHub对开源世界来说实际上是个好消息,且大家应该庆祝微软的这一明智之举 ... 它们有开发和发布基于 Linux 的产品、开源了 .Net,并且是 Linux 基金会、Apache…
Forwarded from 南琴浪's 新闻部 (deprecated)
花解语,鸟自鸣,生活中处处有语言,不同的语言打开不同的世界,比如 C++, Java, python 都是语言,面向过程的语言,面向对象的语言,语言丰富生活,传承文化。请你以 "最好的语言" 为话题,写一篇不少于 800 字的文章,要求以 php 语言行文,文体不限,编辑器自选,记事本除外。