2作者: paulvoge8 个月前原帖
你好,HN, 如果你喜欢像填字游戏、连接游戏或Wordle这样的每日文字游戏,你可能会喜欢Outlier。 这个游戏探索单词之间的关系——虽然“RED”当然是一个颜色,但它也是辛辛那提的一名棒球运动员、一张泰勒·斯威夫特的专辑,以及德克萨斯州边界的一条河流(仅举几例)。 例如: 超级 邮件 纤细 水蓝 沙子 鬼舞 冰雹 击打 温和 虽然“绅士”、“超人”和“杀手”都是实际的单词/概念,但“冰雹人”却不是。HAIL是这个异常值。然后,异常值将成为下一个集合的成员。 下一轮可能会涉及气象现象,或者古老的问候(“冰雹,凯撒”)或者表示某人来自哪里(“她来自俄亥俄州”)的单词。 欢迎所有反馈!我正在考虑是否应该增加当前的时间惩罚,以鼓励更有条理的游戏。我还在Instagram上发布每日线索,账号是@outlier.land。谢谢!
5作者: behnamoh8 个月前原帖
我的理解是否正确,Lisp 强大的宏系统源于能够用 Lisp 本身编写 eval 函数?根据我的了解,Lisp 从一小组原始操作和特殊形式开始——在最初的 Lisp 中有七个,包括 lambda。我记得保罗·格雷厄姆在他的某篇文章中演示过,仅用这些原始操作就可以构建一个 eval 函数。这些原始操作通常是在像 C 这样的宿主语言中实现的,但一旦你在 Lisp 中有了一个 eval 函数,就可以通过新的规则来扩展它。底层的 C 解释器只看到原始操作,但作为程序员,你可以通过 eval 引入新的语法规则。这似乎是理解宏的一种方式,因为你实际上是在添加新的语言规则。我知道 Lisp 宏通常使用像 defmacro 这样的特定关键字来定义,但核心思想是否相似——通过在 eval 函数上构建新规则来扩展语言?