轉信站: GIBBS!news2.ncku!ccnews.ncku!news.ccns.ncku!news.mksh.phc!news.nsysu!ne 如題 請問有沒有教scheme的教授 謝謝 問題如下:(會scheme的幫忙解一下 ,感恩) ;(set? '(a b a c d)) ;#f →這樣看來是說 有重複的話是#f ;(set? '(a b d e)) ;#t 沒重複的話是#t ;use member? (define member (lambda (n ls) (cond ((null? ls) #f) ; ^^^^^^^^^^^^^^^^^^^^這種怎麼解釋(空的是#f?) ((eq? (car ls) n) #t) ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^相等叫#t (else (member n (cdr ls)))))) (define set? (lambda (ls) (cond ((null? ls) #t) ; ^^^^^^^^^^^^^^^^^^^^空是真? ((eq? #f (member (car ls) (cdr ls))) #f) ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這在搞什麼? ((member的東西 和 否 相等的話 就執行 否)) (else (set? (cdr ls)))))) (set? '(a b a b e)) ; →你看執行結果 這個是#f→可以理解 (set? '(a b c d e)) ;→這邊就見鬼了 執行也是#f→是上面哪裡有錯嗎 -- ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 140.125.90.36