データの整列
Posted feedbacks - Scheme
実行例: gosh> (sort-c '((1 . 2) (3 . 5) (4 . 2) (3 . 1) (2 . 7)) 'dic) ((1 . 2) (2 . 7) (3 . 1) (3 . 5) (4 . 2)) gosh> (sort-c '((1 . 2) (3 . 5) (4 . 2) (3 . 1) (2 . 7)) 'dist) ((1 . 2) (3 . 1) (4 . 2) (3 . 5) (2 . 7))
1 2 3 4 5 6 7 | (define (sort-c ls sym)
(cond ((eq? sym 'dic)
(sort ls (lambda (x y) (if (= (car x) (car y)) (< (cdr x) (cdr y)) (< (car x) (car y))))))
((eq? sym 'dist)
(sort ls (lambda (x y) (< (sqrt (+ (expt (car x) 2) (expt (cdr x) 2)))
(sqrt (+ (expt (car y) 2) (expt (cdr y) 2)))))))
(else (error "ソートのしかたを指定してください。"))))
|


odz #5839() Rating1/1=1.00
(x, y) の座標情報を以下の2種類の方法で整列する機能を実現してください。
データの表現方法はタプルなり構造体/オブジェクトなり各自で適当に選んで下さい。
[ reply ]