OberonCore https://forum.oberoncore.ru/ |
|
Haskell & структуры данных https://forum.oberoncore.ru/viewtopic.php?f=72&t=1749 |
Страница 1 из 1 |
Автор: | Alexey Veselovsky [ Четверг, 06 Август, 2009 19:38 ] |
Заголовок сообщения: | Haskell & структуры данных |
Ковыряюсь со типами/структурами данных на haskell'e. Вот предположим я описал некий рекурсивный тип данных: Код: data Lst a = Node a (Lst a) | End Вопрос: как это будет реализовано? В виде односвязного списка? В виде некой непрерывной области памяти (аля массив)? Или как-то ещё? Как это можно контролировать? |
Автор: | Geniepro [ Пятница, 07 Август, 2009 09:50 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
У Вас тут АлгТД с двумя конструкторами, а конструкторы по сути -- функции. Кстати, Зефиров (thesz) писал, что в его эмуляторе процессора он использовал самодельный тип данных (вроде вашего) вместо стандартного списка -- получилось заметно шустрее. Там получалось выполнение цепочки функций вместо прохода по списку, что-то в этом духе... Кстати, такие ответы лучше искать на хаскельвики http://haskell.org/haskellwiki/Performance/Data_types |
Автор: | Alexey Veselovsky [ Пятница, 07 Август, 2009 17:58 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Geniepro писал(а): У Вас тут АлгТД с двумя конструкторами, а конструкторы по сути -- функции. Кстати, о этих конструкторах -- а где они собственно определены? По факту я же их только задекларировал, но нигде не описал. |
Автор: | Geniepro [ Воскресенье, 09 Август, 2009 18:39 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Вот Вы сами себе противоречите! Декларация -- это же и есть описание! Раз продекларировали, значит описали... |
Автор: | Илья Ермаков [ Воскресенье, 09 Август, 2009 19:01 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Объявить, описать, определить... Declare, descript, define... далеко не одно и то же |
Автор: | Geniepro [ Понедельник, 10 Август, 2009 07:35 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Хаскелл -- декларативный ФЯ, так что в нём это всё одно и то же... |
Автор: | Valery Solovey [ Четверг, 13 Август, 2009 11:55 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Скорее, в нём это одно и то же потому, что так захотели его создатели, а не потому, что он декларативный. |
Автор: | Geniepro [ Четверг, 13 Август, 2009 12:53 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
А смысл разделять описание типа от описаний его внутренностей? Ведь конструктор алгебраического типа данных -- это именно его внутренность... |
Автор: | Valery Solovey [ Четверг, 13 Август, 2009 13:30 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Так объявление - это ж, вроде, АТД, а реализация его может быть разной. Про смысл разделения или совмещения спорить не буду, повторю лишь, что совмещение объявления и реализации - это задумка авторов. |
Автор: | Geniepro [ Четверг, 13 Август, 2009 14:41 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Valery Solovey писал(а): Так объявление - это ж, вроде, АТД, а реализация его может быть разной. Вы имеете в виду абстрактный тип данных (АТД), операции над которым можно реализовывать отдельно от описания структуры самого типа?Valery Solovey писал(а): Про смысл разделения или совмещения спорить не буду, повторю лишь, что совмещение объявления и реализации - это задумка авторов. АлгТД описываются одинаково и в Хаскелле, и в Окамле, и в других языках с АлгТД (с учётом мелких синтаксических различий самих языков). Нет разделения на сам АлгТД и его конструкторы, из которых он состоит (а кроме этих конструкторов в нём ничего и нет-то)... |
Автор: | Valery Solovey [ Четверг, 13 Август, 2009 15:01 ] |
Заголовок сообщения: | Re: Haskell & структуры данных |
Да, я имел в виду именно АТД. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |