2022-08-07 21:31
一个序对将恰好两个概念组合在一起. 并且, 给定一个序对, 我们可以将两个概念分离出来. 从此方面理解, 序对是最基本的组合手段.
Scheme提供了三个和序对相关的过程. cons用来构造序对, car是第一投影, cdr是第二投影. car和cdr这两个名字的由来是历史性的, 读者不必清楚.
以上交互刻画了序对最基本的用法.
Scheme输出序对的方式有些微妙.
当序对串起来的时候, 只有最后两个元素之间用.分隔.
实际上, 我们可以仅仅使用过程来实现序对.
这模糊了我们心中过程和数据之间的界限.
注记: 任何Scheme系统都不会使用这种方式实现序对, 一方面出于效率问题, 另一方面在于我们想要在一般情况下区分序对和过程.
练习. 序对的一项切实的功用是用来返回多个值.
以上过程展现了所谓的"扩展Euclid算法", 试证明它的正确性.