Git Bundle 指南

git bundle 是一个比较少看到的 git 命令,它的作用是把一个 git 仓库打包📦成一个文件,然后别人可以通过这个文件还原出本来的 git 仓库,而且 git bundle 还支持增量更新功能。在知道 git bundle 命令之前,我有时候打包一个 git 仓库一般就直接 tar czf some_git_repo。前阵子偶然发现了 git bundle 发现还挺实用的🍻

用 MPNN 框架解读 GAT

Justin Gilmer 提出了 MPNN(Message Passing Neural Network)框架1 ,用于描述被用来做图上的监督学习的图神经网络模型。我发现这是一个很好用的框架,可以很好理解不同的 GNN 模型是如何工作的,方便快速弄清楚不同的 GNN 模型之间的差别。我们考虑图 $G$ 上的一个节点 $v$,它的向量表示 $h_v$ 的更新方式如下: $$m_v^{t+1}=\sum_{u\in \mathcal{N}(v)}M_t(h_v^t,h_u^t,e_{vu})$$ $$h_v^{t+1}=U_t(h_v^t,m_v^{t+1})$$

SICP 练习 2.27

Modify your reverse procedure of exercise 2.18 to produce a deep-reverse procedure that taks a list as argument and returns as its value the list with its elements reversed and with all sublists deep-reversed as well.

SICP 练习 1.46

Several of the numerical methods described in this chapter are instances of an extremely general computational strategy known as iterative improvement. Iterative improvement says that, to compute something, we start with an initial guess for the answer, test if the guess is good enough, and otherwise improve the guess and continue the process using the improved guess as the new guess. Write a procedure iterative-improve that takes two procedures as arguments: a method for telling whether a guess is good enough and a method for improving a guess. Iterative-improve should return as its value a procedure that takes a guess as argument and keeps improving the guess until it is good enough. Rewrite the sqrt procedure of section 1.1.7 and the fixed-point procedure of section 1.3.3 in terms of iterative-improve.

CS61A 的项目四之 Scheme 解释器实现 (2021-Fall)

最近正在跟着《Crafting interpreter》这本书写解释器,原本书里面用 Java 实现了一个 Tree-walker 解释器 jlox,我正在用 Python 重写一遍,称为 pylox。看了这本书感觉对解释器的理解越来越深刻了,很推荐👍。此时的我突然想起来之前看完的 CS61A 的 Scheme 解释器还有几个小问题没有解决,导致它一直是未完成的状态,于是今天我打开了这个项目,打算从头到尾捋一遍,讲讲思路。