Реальная статья по dependent types
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.11.07 08:38
Оценка:
По совету Булата взялся прочитать статью Fun with phantom types — это нечто довольно необычное для статей по функциональному программированию. Изложение очень доходчивое, имеются упражнения и реальные примеры применения этих вещей (e.g. типизированный printf для хаскеля). Раньше я думал, что это сильно теоретическая и не очень востребованная тема, понял, что несколько заблуждался.
Короче: всем советую прочитать
P.S. чуть не забыл — phantom types это одно из названий dependent types.
Re: Реальная статья по dependent types
От: palm mute  
Дата: 15.11.07 08:46
Оценка: +1
Здравствуйте, Курилка, Вы писали:

К>P.S. чуть не забыл — phantom types это одно из названий dependent types.

Совершенно неверно.
Re[2]: Реальная статья по dependent types
От: palm mute  
Дата: 15.11.07 08:58
Оценка:
Здравствуйте, palm mute, Вы писали:

К>>P.S. чуть не забыл — phantom types это одно из названий dependent types.

PM>Совершенно неверно.

Немного раскрою суть возражения. Зависимые типы — это типы, зависящие от значений, известных лишь во время выполнения. Грубо говоря, в языке с зависимыми типами возможно следующее:


foo : NonEmptyList -> Int
foo = ...

...

xs <- readFromFile "xs.txt"
if empty xs
   return 0
else
   return (foo xs)  -- т. к. проверку сделали, здесь список непустой.
                    -- другими словами, у xs разные типы в ветках then и else


Зависимых типов в Хаскеле нет. А что такое phantom types — в статье по ссылке описывается хорошо.
Re[3]: Реальная статья по dependent types
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.11.07 09:12
Оценка:
Здравствуйте, palm mute, Вы писали:

PM>Здравствуйте, palm mute, Вы писали:


К>>>P.S. чуть не забыл — phantom types это одно из названий dependent types.

PM>>Совершенно неверно.

PM>Немного раскрою суть возражения. Зависимые типы — это типы, зависящие от значений, известных лишь во время выполнения.

Не совсем улавливаю, а тот же Dynamic не будет зависеть от времени исполения?
Или результат декомпрессии?
Неувязочки выходят, да и приведённый пример присутствует в статье (хоть и не совсем дословно).
Думаю, что всёж некая разница есть, но она глубже по моим ощущениям (т.к. пока чёткого понимания предмета нет)
Re: Реальная статья по dependent types
От: BulatZiganshin  
Дата: 15.11.07 09:18
Оценка: 8 (1)
Здравствуйте, Курилка, Вы писали:

советую ещё очень интересную "Faking it: simulating dependent types in Haskell"
( http://www.cs.nott.ac.uk/~ctm/faking.ps.gz ) и мою недоконченную http://www.haskell.org/haskellwiki/GADTs_for_dummies
Люди, я люблю вас! Будьте бдительны!!!
Re: Реальная статья по dependent types
От: deniok Россия  
Дата: 15.11.07 09:24
Оценка: 45 (4)
Здравствуйте, Курилка, Вы писали:

К>P.S. чуть не забыл — phantom types это одно из названий dependent types.


Имхо, это разные вещи. phantom types — техника позволяющая эмулировать некоторые свойства dependent types в Хаскелле.

По dependent types — обзор Олега, с массой ссылок: здесь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.