Интересный смайл, правда, я не уверен, что он отобразится во всех броузерах:
λ_λ
Вот.
Интересный смайл, правда, я не уверен, что он отобразится во всех броузерах:
λ_λ
Вот.
Хорошая подборка статей, в которых раскрываются интересные детали реализации lisp: Lisp Usenet classics. Особенно понравилась An interesting memory management scheme в свете популярного сейчас цикла статей о памяти: What every programmer should know about memory.
Эффективное разбиение большой задачи на независимые маленькие – основа параллельного программирования.
Попробуйте дать определение следующим терминам: recursive decomposition, data decomposition, functional decomposition, exploratory decomposition и speculative decomposition. Если возникли трудности – читайте How-to Split a Problem into Tasks. Статья особенно интересна людям с опытом функционального программирования.
Вот как в scheme необходимо применять apply для решения реальных задач. j85wilson на канале #scheme продемонстрировал изящную реализацию генерации всех перестановок списка:
(define (perm lst)
(if (null? lst)
'(())
(apply append
(map (lambda (elt)
(map (lambda (rest) (cons elt rest))
(perm (filter (lambda (x) (not (eq? x elt))) lst))))
lst))))
Незаслуженно непопулярный пакет из PlaneT – foof-loop.plt. В его документации можно найти краткое и понятное описание того, что современный мир scheme знает о циклах и их организации.
Взято из Portable syntax-case.
(void) – returns the implementation’s cannonical “unspecified value”. The following usually works:
(define void (lambda () (if #f #f)))