пра манады
Sep. 27th, 2017 06:27 pmhttps://markkarpov.com/post/free-monad-considered-harmful.html
Свободные - плохо. (Ну типа почти всегда.)
И про нативные типы в Скале (плагин нужен)
https://github.com/alexknvl/newtypes
Свободные - плохо. (Ну типа почти всегда.)
И про нативные типы в Скале (плагин нужен)
https://github.com/alexknvl/newtypes
а вот еще обнаружил
Jul. 11th, 2017 02:03 pmВычисляю, скажем, норму вектора; а там такой TraversableOnce, и он такой, перед тем как начать суммировать, проверяет, уж не пустая ли коллекция; а народная проверка на пустоту, как это принято на джавных языках, состоит в том, чтобы посчитать длину и удостовериться, что оная больше нуля. Ну казалось бы, нахер тебе длина. Ну и т.д.
Да даже если просто hasNext() чекать, и то, инстанциируется итератор, а для этого нужно фильтровать базар, например, ну и т.д.
Это я вбрасываю реализма. Написал, например, Foldable на джаве, чтобы "ускорить процесс". В три раза, например, на длинных векторах.
Короче, сильные типы важны, но под покровом типов надо как-то хотя бы от боксинга избавиться.
Да даже если просто hasNext() чекать, и то, инстанциируется итератор, а для этого нужно фильтровать базар, например, ну и т.д.
Это я вбрасываю реализма. Написал, например, Foldable на джаве, чтобы "ускорить процесс". В три раза, например, на длинных векторах.
Короче, сильные типы важны, но под покровом типов надо как-то хотя бы от боксинга избавиться.
в процессе бытия
Jun. 8th, 2017 05:58 pmНу да, я пишу на скале. Но мечтал впендюрить в тип вектора его размер (размерность, по-нашему). Ну скала, не идрис же. Типы-то независимые.
Ан нет, это скала! Впендюрил. Всандалил класс VectorSpace (is it better if I call it LinearSpace? who fucking cares...); и в нем уже вектор. Проверять совместимость при сложении не надо, ну и все такое. К матрице присобачил два свойства - домен (одно пространство) и кодомен (другое пространство). И все заебись! Беру row - оно уже нужного типа и нужной длины, по дефолту, блин! Типы стали зависимы.
А если я так напишу class NormedLinearSpace extends VectorSpace with Norm
(норма - у меня уже есть такой класс).
Классно же, а. Кстати, и вопросы перформенса легче решаются. Что-то у меня тайпклассы не пошли в этот раз.