Aug. 17th, 2012

kaipa: (Default)
Начал было писать библиотеку для динамического программирования на Scala, чтобы поглубже погрузиться в программирование на типах. Все хорошо, даже сложные рекурсивные типы получаются, но одна штука безумно отравляет жизнь: в Scala нет generic числового типа. То есть нельзя задать тип "просто число", чтобы типичные операции числового поля выполнялись естественным образом, а не через костыли. Вернее, можно, но тогда придется написать тип "просто число" самому. Или ограничиться полем действительных чисел :)

Что я называю "программированием на типах"? Возможно, это не лучшее название. В большинстве математических теорем в условии довольно подробно описываются границы применимости, классы объектов, для которых теорема справедлива. В тип можно "вложить" похожую информацию. В идеале можно построить иерархию типов, соответствующих математическим объектам: алгебраическим структурам, типам пространств и т.п. Или не строить, но в нужном месте определять, что такой-то тип имеет определенную структуру (не определяя при этом сам тип). При этом программа состоит из описаний типов, их отношений и преобразований. Сами экземпляры типов определяются только в тот момент, когда необходимо провести конкретные вычисления.

Наверное, я непонятно объясняю, время позднее. Очень хорошо о математическом подходе к программированию на Scala изложено тут.

Profile

kaipa: (Default)
kaipa

April 2017

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 27th, 2026 04:37 am
Powered by Dreamwidth Studios