意思是自己实现一个受限的 Ruby 解释器/编译器?
好耶,给 Agda 点个赞
代码长了就不能靠缩进区分了
感觉 class << self 没有优势反而有劣势,代码长了一眼分辨不出一个方法到底是类方法还是实例方法,相反 self.xxx 就没有这种问题
兄弟你不懂梗
实际上就是 trie 树吧,此外这种匹配还可以优化成 AC 自动机,失配的时候跳到失配节点,理论上时间复杂度会好一些
太真实了,每次 code review 都是在争论这些东西。。
严格来讲的话遇到 main 触发求值但是也不应该返回一个值,而是要将字符串打印出来,这样讲的话,让 show 返回一个 IO Monad,然后写一个 runIO :: IO () -> String 来测试可能更合适一些……顺便,您通过了这道题,麻烦打个分,让这题早日摆脱 beta 状态
说出来你可能不信,你甚至可以用 Ruby 写 Haskell like 的语法 没错,上面的代码都是可以运行的,当然实现方式就是大家喜闻乐见的元编程了,CodeWars 有这题 (https://www.codewars.com/kata/59a8dda8dbe3b0b6f700008d),欢迎大家踊跃尝试(
按照 SICP 的说法,因为 for 不会产生 frame,所以这里的所有 i 都属于同一个 frame,proc 求值时会从这个 frame 里找 i 的绑定,i 最后绑定的是 hello,结果自然就是两个 hello 了
支持楼主
容许の心,赞美の心,告诫の心