LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Кто-нибудь может на пальцах пояснить, что это за продолжения такие и как их можно использовать

Продолжение — функция, содержащая локальный контекст и остаток от текущей функции.

В отличие от goto восстанавливает стек.

Позволяет:

1. Реализовать многопоточность в стиле Erlang. С тысячами «потоков» и минимумом затраченных ресурсов

2. Реализовать логику веб-сайта без лапши обратных вызовов, а просто

(define (login)
  (define-values (user pass) (ask-user-pass))
  (if (check-with-db-ok? user pass)
      (show-data)
      (bad-password)))

3. Для любого обходчика коллекции (типа map, map-list и т.д.) можно сгенерировать итератор. Можно обходит параллельно несколько коллекций. Например, сделать сравнение деревьев через map-tree.

4. Реализовать сопрограммы.

Исходная версия monk, :

Кто-нибудь может на пальцах пояснить, что это за продолжения такие и как их можно использовать

Продолжение — функция, содержащая локальный контекст и остаток от текущей функции.

В отличие от goto восстанавливает стек.

Позволяет:

1. Реализовать многопоточность в стиле Erlang. С тысячами «потоков» и минимумом затраченных ресурсов

2. Реализовать логику веб-сайта без лапши обратных вызовов, а просто

(define (login)
  (define-values (user pass) (ask-user-pass))
  (if (check-with-db-ok? user pass)
      (show-data)
      (bad-password)))



3. Для любого обходчика коллекции (типа map, map-list и т.д.) можно сгенерировать итератор. Можно обходит параллельно несколько коллекций. Например, сделать сравнение деревьев через map-tree.

4. Реализовать сопрограммы.