*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: Яйца!  (2008-12-25 07:20:27)

Вензапно обнаружилось пасхальное яйцо в IDE схемы. Вместо привычного синего прогрессбара получилась вот такая картинка. Причино, по всей видимости, послужила системная дата. Нужно схему запускать чаще, хотя бы ради того что найти в какие еще дни можно увидеть что-нибудь подобное.

А в схему я попал вот зачем — нужно было реализовать сортировку, но не протсыми человеческими методами, а таким, до которого я не смог дойти своим умом, но он вполне рабочий, можете использовать в своих проектах (=. Вот код, да поймут понимающие:

(define (show . z) (map display z) (newline))
(define (nth l n) (if (= n 0) (car l) (nth (cdr l) (- n 1))))
(define (rand ls) (nth ls (floor (* (length ls) (random)))))

(define (shuffle ls)
    (define (iter tail head) (if (null? tail) head
            (let ((s (rand tail))) (iter (remove s tail) (cons s head)))))
    (iter ls '()))

(define (sorted? ls)
    (define (iter n ls)
        (if (null? ls) #t (if (< (car ls) n) #f (iter (car ls) (cdr ls)))))
    (iter (car ls) (cdr ls)))

(define (randsort ls)
    (define (iter n)
      (let ((l (shuffle ls)))   
        (show n " " l)
        (if (sorted? l) l (iter (+ n 1)))))
  (iter 1))

(show (randsort '(2 1 3)))

Oleg от 2009-01-17 13:42:13:
Добавь возможность коментировать тексты пожалуйста. Перечитал сегодня - очень понравилось. Тебе стоит писать. И у меня там идейка одна есть. Но для нее ты нужен.
Имя:
Комментарий: