【实验】用 elisp 教编程

哔哩哔哩上能发信息吗?

交换个邮箱。

Bilibili 不太清楚,应该也有站内信之类的功能吧,我的邮箱是 [email protected]

多谢周冲兄的分析,我基本同意你的观点,当初到最后也确实是从 elisp 和 javascript 中二选一

不过只是拿 elisp 来熟悉编程的基础元素:类型、变量、判断、循环、函数…… 就像学游泳选个泳姿入门,仰泳、蛙泳、自由泳可能没太大区别 —— 反正都要学,我目前的教学计划是: elisp 教完后 (大概不到10次课的内容,并不多),马上进入 javascript (或是 python)的 crash course —— 这时候有了底子,学起来会快很多。

之前做这个计划:

  1. 觉得 javascript 很多历史遗留问题,干着差不多的事儿,却有好些不同的写法,比如:callback/promise/async-await ,另外我手头也没有合适的 js 教程作为依托,而 elisp 的核心很小,教程可以参考 elisp-intro 和 SICP,都是我自己看过并且相对熟悉的材料。
  2. 再有就是也没打算在 elisp 上纠缠,只是练会常用的编程元素,然后就会进入下一阶段 —— 你提到的基本概念,其实只教了 list 和 hashtable
  3. 我有些觉得 s-expression 是所有编程语言的一种中间表达形式,还能用 defmacro 自己基于 cond 实现 unless/if,基于 while 实现 dolist (类似于 py/js 里的 for) 和 dotimes 等等 —— 损之又损后,就只剩原始论文里的7个基本运算(见 http://daiyuwen.freeshell.org/gb/rol/roots_of_lisp.html) => 因此我推测用 lisp 入门会对语法有更透彻的理解,这也是我想要验证的一个猜测

Update:

目前刚结束 elisp 的部分

开始跟着 python tutorial 学 python 的语法,感觉:

  1. 这个官方教程一是有的地方过于细节,比如函数参数那段,各种用法写得超级详细,初学者真的需要了解这么多吗?

  2. 没有题目可供练习 -> 我现在就让他把学 elisp 时的练习挑一些重新用 python 写一遍 -> 打算熟悉下语法直接写个爬虫之类的练手好了

推荐 codewars

貌似gnu emacs有 guile(scheme) emacs版本 :hamburger: