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 & структуры данных

Вот Вы сами себе противоречите! Декларация -- это же и есть описание! Раз продекларировали, значит описали... :lol:

Автор:  Илья Ермаков [ Воскресенье, 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/