if-program

没难度,直接按照输出样式用 list 链接即可

pow-expr

这里其实就是实施一个快速幂,其实之前用 Scheme 完成过类似的
只是这里需要使用宏
需要注意:
  1. list 和 cons 的区别
  1. 这里的 base 需要使用 unquote,因为需要显示实际的 base,因此前面需要用 quaisi-quote

repeat

这里需要实现两个函数
首先,define-macro
这里需要注意的是,网站已经给出等效的 lambda 的做法,因此这里需要传入的 f 应该用一个匿名函数来代替,需要借助 lambda 把一个表达式转换成一个函数/方法/变换
同时,需要注意 begin 的用法,这里的 f 调用需要加() 给括起来
然后做一个递归即可
Loading...