Category: дети

Category was added automatically. Read all entries about "дети".

гарфильд

Перевод серии статей "Язык Haskell для детей"

Предлагаю вашему вниманию перевод серии статей "Haskell For Kids!" (оригинал: http://cdsm ith.wordpress.com/2011/08/03/haskell-for-kids-introduction/ )

На данный момент перевод выполнен на ~50%, переведено введение и первые четыре части. Ознакомиться с ним можно здесь: http://it-talk.org/topic15355.html

Если что, перевод не мой, им занимается Darkus.
devirtualizing
  • smilga

[приложения] с застёжкой-молнией нигде не видел я

Уже довольно долго мучаюсь с программой. Существенную часть её составляет библиотека обработки всяких лингвистических структур, содранная с Гюэтова «Дзена» (и о которой я уже как-то рассказывал).

Вкратце, Гюэ придумал[1] обрабатывать деревья при помощи специальной структуры данных, которую он назвал  зиппер. Если дано дерево (здесь я буду говорить о помеченных упорядоченных деревьях, т.к. это наиболее удобная для человеческого понимания разновидность) и задан путь α → β → ... ν → ξ к какому-нибудь его узлу, то по ним строится зиппер z[ξ], содержащий (а) поддерево с вершиной в ξ, (б) его левый и правый контексты, т.е. списки сестринских узлов ξ в порядке от ближайших к более дальним, и (в) ссылка на зиппер z[ν] материнского узла, устроенный таким же образом. структура зиппера Отсюда метафора застёжки-молнии: дерево как бы «расстёгивают» до нужного узла, разделяя выше него левый и правый контексты. Используется также метафора фокусировки зрения: зиппер держит один узел дерева в фокусе, фокус можно легко передвигать по всем доступным направлениям, а рядом с ним — вставлять новые узлы и удалять существующие. Все эти операции требуют константного времени (кроме передвижения фокуса вверх, к-е ограничено максимальным количеством братьев у узла). В любой момент можно «застегнуть молнию» и получить исходное дерево со всеми изменениями, сделанными посредством операций с зиппером. Обратите внимание, что операции полностью аппликативны: всякое изменение состояния достигается копированием зиппера, присваивание не используется.

Collapse )

1 G. Huet, The zipper. J. of Func. Prog., 7(5):549–554, 1997. The Zen Computational Linguistics Toolkit. ESSLLI Lectures, 2002 [HTML, PDF, PS].

Collapse )