scheme 学习:pair 和 list
生活随笔
收集整理的這篇文章主要介紹了
scheme 学习:pair 和 list
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
;pair;cons可以用于構建pair,如(cons 1 2)->(1 . 2);car獲得pair中的first,cdr獲得pair中的second;(car (cons 1 2))->1 (cdr (cons 1 2))->2;(cons 1 (cons 2 3))->(1 2 . 3)這是scheme輸出pair時候的一種簡略形式;實際上述pair的first是1,second是(2 . 3) ;類似的(cons 1 (cons 2 (cons 3 4)))->(1 2 3 . 4);實際的存儲形式是(1 . (2 . (3 . 4)));list;list也是一種pair,其first可以是任意類型,second或是一個pair或是nil;用以表示list的結尾;例如:(list 1)->(1) first:1 second:nil;(list 1 2 3 4)實際上由(cons 1 (cons 2 (cons 3 (cons 4 nil))))構造出來;也就是說(list 1 2 3 4)的輸出實際上跟(1 2 3 4 . nil)是等價的,但是當最后一個;元素是nil時在輸出中可以被省略,所以(list 1 2 3 4)的實際輸出是(1 2 3 4);append;用于將兩個list合成一個list,例如(append '(1) '(2 3))->(1 2 3);比較(cons '(1) '(2 3))->((1) 2 3) (cons 1 '(2 3))->(1 2 3);可一得到append的一種實現(xiàn)方式
(define (append list1 list2)(if (null? list1)list2(cons (car list1) (append (cdr list1) list2))))
?
轉載于:https://www.cnblogs.com/sniperHW/archive/2013/05/29/3106266.html
總結
以上是生活随笔為你收集整理的scheme 学习:pair 和 list的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取服务器信息info
- 下一篇: Hessian简介