練習2.17
;; 直接利用已經實現的list-ref和length過程即可練習2.18(define (last-pair items)
(if (null? items)
(display "null")
(list-ref items (- (length items) 1))))
;; 翻轉即為將列表第二個元素翻轉再加上第乙個元素練習2.19(define (reverse items)
(if (null? items)
'();; 翻轉即為倒序取列表值再組合成新的列表
(define (reverse items)
(define (reverse-iter a n)
(if (< n 0)
'()(cons (list-ref a n) (reverse-iter a (- n 1)))))
(reverse-iter items (- (length items) 1)))
(define (no-more? coin-values)練習2.20(null? coin-values))
(define (except-first-denomination coin-values)
(cdr coin-values))
(define (first-denomination coin-values)
(car coin-values))
1 ]=> (cc 100 us-coins)
;value: 292
1 ]=> (cc 100 (reverse us-coins))
;value: 292
;; 改變coin-values的順序不會影響結果
;; 因為在cc過程中遞迴的累加 只用某種幣值的兌換種數和除去這種幣值後的兌換種數, 因此和次數無關
;; 首先定義flag過程, 以判斷傳入的兩個數是否奇偶性一致練習2.21;; 然後在get-list過程中遞迴使用cdr取列表的剩餘部分完成奇偶性檢查
;; 最後將引數拼接成列表呼叫get-list過程
(define (same-parity x . y)
(define (flag a b)
(= (remainder a 2) (remainder b 2)))
(define (get-list items)
(if (null? items)
'()(if (flag x (car items))
(cons (car items) (get-list (cdr items)))
(get-list (cdr items)))))
(get-list (cons x y)))
1 ]=> (same-parity 1 2 3 4 5 6 7)
;value : (1 3 5 7)
1 ]=> (same-parity 2 3 4 5 6 7)
;value : (2 4 6)
1 ]=> (same-parity 2 2 0 128 6 7)
;value : (2 2 0 128 6)
(define (square-list items)練習2.22(if (null? items)
'()(cons (square (car items))
(square-list (cdr items)))))
(define (square-list items)
(map (lambda (x) (square x)) items))
;; louis在組成新的結果時, 在cons的兩個引數上搞反了練習2.23;; 調整之後因為對列表和數值直接結合導致出現如下結果
;value : (((((() . 1) . 4) . 9) . 16) . 25)
;; 因此做如下修正, 將數值變換為列表然後再和之前的結果相加
(define (square-list items)
(define (iter things answer)
(if (null? things)
answer
(iter (cdr things)
(list (square (car things)))))))
(iter items '()))
(define (for-each proc items)(if (null? items)
'()(and (proc (car items))
(for-each proc (cdr items)))))
Oracle學習筆記20150906序列
1.oracle中用sequence 序列 來實現自動增長列.序列由使用者建立資料庫物件,並可有多個使用者物件共享,一般用於主鍵或者唯一列.2.create sequence myseq序列名 start with 1從1開始遞增 increment by 1每次遞增1 maxvalue 99 no...
Oracle學習筆記 10 序列
當在開發中,我們查詢到一組資料,希望這組資料帶有一列自增的編號時。在mysql資料庫中,字段可以設定一種型別,auto increment 自增 當乙個字段設定 auto increment 型別後,給定乙個初始的數字,之後每加入一條新的記錄,該條記錄的這個欄位的值都會在原來的基礎上加1。這個屬性也...
Python 學習筆記三 序列
sequence 序列 是一組有序的元素的集合,序列可以有任何元素,也可以沒有元素 元組與表的區別 一旦建立,tuple的各個元素不可再變更,而list的各個元素可以再變更 s1 1,2,zhansan 李四 false s2 1,2,zhansan lili true print s1,type ...