序对

一个序对将恰好两个概念组合在一起. 并且, 给定一个序对, 我们可以将两个概念分离出来. 从此方面理解, 序对是最基本的组合手段.

Scheme提供了三个和序对相关的过程. cons用来构造序对, car是第一投影, cdr是第二投影. car和cdr这两个名字的由来是历史性的, 读者不必清楚.

以上交互刻画了序对最基本的用法.

Scheme输出序对的方式有些微妙.

当序对串起来的时候, 只有最后两个元素之间用.分隔.

实际上, 我们可以仅仅使用过程来实现序对.

这模糊了我们心中过程和数据之间的界限.

注记: 任何Scheme系统都不会使用这种方式实现序对, 一方面出于效率问题, 另一方面在于我们想要在一般情况下区分序对和过程.

练习. 序对的一项切实的功用是用来返回多个值.

以上过程展现了所谓的"扩展Euclid算法", 试证明它的正确性.

你的回應