排序子列表
((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))))但这不管用
发布于 2021-12-19 21:27:50
(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))在通用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))https://stackoverflow.com/questions/70392186
复制相似问题