1樓:窗戶
不用lambda……好吧,可以用迭代來實現。這樣想來,其他答案似乎都不滿足題主要求了,因為用了過於高階的東西。
#lang
racket
(define
(perm
lst)
(define
(add
eles)(
define
(insert
lstposx)
(if(zero?
pos)
(cons
xlst)(
cons
(car
lst)
(insert
(cdr
lst)(-
pos1)x
))))
(define(it
snew
len-s-each
insert-pos)(
cond
((null?s)
new)
(( len-s-each)( its(cons (insert (cars) insert-pos ele) new) len-s-each(+ insert-pos 1))) (else(it (cdrs) (cons (insert (cars) insert-pos ele) new) len-s-each 0))))(if (null?s) (list (list ele))(it s'()( length (cars)) 0)))(if (null? lst) (list '()) (add (car lst) (perm (cdr lst))))) (for-each displayln (perm'( 1234 )))用的都是最純的元素,好吧,甚至還可以更純一點。減少list函式、length函式、小於函式的應用,照樣可以辦到,在我基礎上改改很簡單,留給題主吧。 2樓:netcan (define (permutationss) (cond [(empty?s) empty][( empty? (rests)) (lists)] [else (let splice[(l '())(m (firsts)) (r(rest s))](( map( lambda(x )(consmx ))(permutations(l r)))(if (empty?r) empty (splice (consml )(carr)( cdrr )))))])) 結果:( permutations'( 123)) =>'(( 123) (132 )(21 3)(2 31)( 321) (312)) 月半大人 我們年少初識,那時的你像天空中的白色雲彩,不經世故渲染的純白色,穿著藍色校服向陽而奔。有幸陪你數十年,白髮奪目,你說你像落日,我覺得你更像晚霞,多彩而醇厚。我最喜歡的便是在天空下目映晚霞吻你額頭,目光所至全是我的晚霞。 RAINT 一年四季,唯獨夏天的天空最好看 桑花一直都這麼覺得。可她真... 王皓 然而只是乙個真實故事,就發生在剛剛,座標北京 到家大概乙個小時了,等外賣的功夫想跟大家分享乙個人生贏家的故事。故事的主角就是今天載我回來的計程車司機,堵車路上的2個半小時前1個小時我的狀態是焦躁不安,無聊跟師傅攀談起來後,後邊的1個半小時我幾乎是張著嘴跪著跟他聊天的。師傅50歲,說拉完我這活就... 李沁 有個笨辦法不知行不行?演算法不好描述,反正就是挪來挪去的,跑下就知道了,有沒有大神解釋下這麼挪的原理是什麼?include include using namespace std using namespace arma int main int q r.n cols 1 int ends 0...如何用「天空,晚霞,你」寫乙個短故事?
如何用「厲害了,我的哥」寫乙個故事?
100 個數,如何遍歷得到所有全排列?