[英]Sort sublists(Racket)
排序子列表
((b a c) (e d) (f h g) (d e) (k l i j) (n m) (o)) =>
((a b c) (d e) (f g h) (d e) (i j k l) (m n) (o))
在語言球拍。 我已經嘗試了很多東西,但它不起作用。 幫助解決我寫這個的問題:
(define (order-by list order)
(cond ((null? order) '())
((member (car order) list) (cons (car order) (order-by (removef (car order) list) order)))
(#t (order-by list (cdr order)))))
(define (task list)
(cond ((null? list) '())
(task (cdr list))))))
(print (task '((d a c) (q d) (f h g) (d e) (k l i j) (n m) (o))))
但它不起作用
(map (lambda (sublist) (sort sublist string<? #:key symbol->string))
'((b a c) (e d) (f h g) (d e) (k l i j) (n m) (o)))
;;=> '((a b c) (d e) (f g h) (d e) (i j k l) (m n) (o))
在 Common Lisp 中,這等於:
(mapcar (lambda (sublist) (sort sublist #'string< :key #'string))
'((b a c) (e d) (f h g) (d e) (k l i j) (n m) (o)))
;; => ((A B C) (D E) (F G H) (D E) (I J K L) (M N) (O))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.