既然都有人这么明确的表态了吧....
我就不藏了,
其实我对
不过我支持 @iVanilla 的看法,虽然肯定会很花时间
现在其实在 GeekApk 的几个项目 GeekPage, GeekNews, SilverFish 里不能脱身,以后还有突然脑洞的一个基于宏的函数式编程语言 Lime(Little Incomplete macro expander)
会使用 Ruby, C, Java 等语言实现,GeekApk 的只能先做了.... 做完 GeekNews 写了文章我就跑去写 Ruby 版的 Lime(
这门语言的构造和解释、解析器、展开器、C 版本的 GC 系统,内部数据和(解释器的)依赖都已经钦定了
Ruby 的已经详细到可以开始做了
跑题了,,,,我还是随便写一行 Lime sexp
我就不藏了,
其实我对
应用做了高强度的混淆措施,它的代码和资源全混淆,并且核心内容采用 C++ native 实现 基本看法不是很好不过我支持 @iVanilla 的看法,虽然肯定会很花时间
现在其实在 GeekApk 的几个项目 GeekPage, GeekNews, SilverFish 里不能脱身,以后还有突然脑洞的一个基于宏的函数式编程语言 Lime(Little Incomplete macro expander)
会使用 Ruby, C, Java 等语言实现,GeekApk 的只能先做了.... 做完 GeekNews 写了文章我就跑去写 Ruby 版的 Lime(
这门语言的构造和解释、解析器、展开器、C 版本的 GC 系统,内部数据和(解释器的)依赖都已经钦定了
Ruby 的已经详细到可以开始做了
跑题了,,,,我还是随便写一行 Lime sexp
(~
(-> 'boys ('' Rikka ice100 pandecheng Yutta))
(-> 'say-hello (# (name)
(@ "#{name} 女装哦 🌚")))
(each boys say-hello)
)
duangsuse::Echo
既然都有人这么明确的表态了吧.... 我就不藏了, 其实我对 应用做了高强度的混淆措施,它的代码和资源全混淆,并且核心内容采用 C++ native 实现 基本看法不是很好 不过我支持 @iVanilla 的看法,虽然肯定会很花时间 现在其实在 GeekApk 的几个项目 GeekPage, GeekNews, SilverFish 里不能脱身,以后还有突然脑洞的一个基于宏的函数式编程语言 Lime(Little Incomplete macro expander) 会使用 Ruby, C, Java 等语言实现,GeekApk…
注:最终都要展开成
上面相应的定义:
(. [internal-expander-id] [args]) 的.... 🌑上面相应的定义:
(-> 'each (# (ary macro)
(? ([()]? ary) ()
(~ (macro (^ ary))
(each ($ ary))))))
-> 内建宏,接受 (name value)~ 内建宏,接受 (*sexp),对传入的数据不作任何处理each 等价的定义已经给出[()]? 如果数组为空 返回 #t 否则 #f (在这里只会用到这个定义)? 接受最多三个S-表达式,这里的定义是 (? cond-macro true-value false-macro)^/$ car/cdr
duangsuse::Echo
注:最终都要展开成 (. [internal-expander-id] [args]) 的.... 🌑 上面相应的定义: (-> 'each (# (ary macro) (? ([()]? ary) () (~ (macro (^ ary)) (each ($ ary)))))) -> 内建宏,接受 (name value) ~ 内建宏,接受 (*sexp),对传入的数据不作任何处理 each 等价的定义已经给出 [()]? 如果数组为空 返回 #t 否则 #f (在这里只会用到这个定义)…
补充:看着一次递归宏展开要多这么多对象就心疼... (
C 版本的内存管理方式是学习 MRI 早期版本的....
都是链表和指针啊... 🌑 GC 算法是 标记-清除 (引用跟踪)
对象内存用空闲链表分配, 每次 GC 要递归遍历几次链表不说判断对象存活的复杂度还是
C 版本的内存管理方式是学习 MRI 早期版本的....
都是链表和指针啊... 🌑 GC 算法是 标记-清除 (引用跟踪)
对象内存用空闲链表分配, 每次 GC 要递归遍历几次链表不说判断对象存活的复杂度还是
(O n**2)
duangsuse::Echo
注:最终都要展开成 (. [internal-expander-id] [args]) 的.... 🌑 上面相应的定义: (-> 'each (# (ary macro) (? ([()]? ary) () (~ (macro (^ ary)) (each ($ ary)))))) -> 内建宏,接受 (name value) ~ 内建宏,接受 (*sexp),对传入的数据不作任何处理 each 等价的定义已经给出 [()]? 如果数组为空 返回 #t 否则 #f (在这里只会用到这个定义)…
我展开一下:
好像不是最终的展开结果(那就是整个表达式的展开结果了)( 🌑
好像也未必在展开过程中的某一步有这个状态.... ()
算是一个参考吧,,,
(~
(. -> 'boys (' "Rikka" "ice1000" "pandecheng" "Yutta"))
(. -> 'say-hello Macro<@args=[:name], @sexp=[:@, [:+, "", [:+, :name, " 女装哦 🌚"]]]>)
(Macro<懒得写了....> boys say-hello)
)
好像不是最终的展开结果(那就是整个表达式的展开结果了)( 🌑
好像也未必在展开过程中的某一步有这个状态.... ()
算是一个参考吧,,,