簡體   English   中英

排序子列表(球拍)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM