Ю ли я? 🤔
Ю ли я? 🤔
"А - это как B" - это аналогия по определению
Ю ли я? 🤔
Я вообще не понимаю, в чём проблема? Не нравятся вам лигатуры, ну не используйте, вам их не навязывают.
Евгений
Тут утверждение вида "A это X, вот B тоже X"
Cheese
Ю ли я? 🤔
Евгений
Аналогия, конечно, это ступень развития абстракции, но одно другим не является
Ю ли я? 🤔
Погугли, что такое аналогия, и не изобретай своих определений.
Евгений
Абстрагирование — отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков. Результат абстрагирования — абстрактные понятия, например: цвет, кривизна, красота и т. д.
> Эстетика не должна нарушать свойств предмета
Пример -- частный случай, приводимый в пояснение, в доказательство чего-н.
> Прихреначить фронтон и колонны на скоростной поезд
Евгений
В прочем когда оскорбляешь религиозные чувства, надо быть готовым к тому, что попы половину твоего утверждения выкинут, а вторую будут рассматривать непосредственно
Ю ли я? 🤔
"частный случай, приводимый в пояснение, в доказательство чего-н."
Ну чем это не аналогия-то?
Евгений
Давай я продолжу гуглить за тебя: Анало́гия— подобие, равенство отношений; сходство предметов, явлений, процессов, величин и т. п. в каких-либо свойствах, а также познание путём сравнения
Ю ли я? 🤔
> религиозные чувства
Например "в коде не должно быть лигатур, ибо ересь"?
Евгений
В "коде" не должно быть лигатур, ибо это редактор с их поддержкой а приори будет тормозить
Ю ли я? 🤔
Ю ли я? 🤔
Ю ли я? 🤔
Ну и до кучи, какое свойство кода нарушают лигатуры? Он компилироваться перестаёт или что?
Евгений
Потому что за о(1) быстрее чем за о(n*ln n)?
Ю ли я? 🤔
Ну и ещё одно религиозное чувство оскорблю: кодошрифт вообще не обязан быть моноширинным. Доказано книжками Бёрда, например.
Евгений
Евгений
Leonid 🦇
Зануды...
Ю ли я? 🤔
Он первый начал!
Ю ли я? 🤔
Ладно, вернусь в онтоп: стряхивал пыль со старого кода времён до monad proposal и обнаружил ошибку компиляции из-за того, что forM сотоварищи теперь работают с любыми Traversable. Можно ему скормить конкретный инстанс, не прописывай весь тип целиком? Ну и без
oldForM = forM :: [a] -> <...>
use `oldForM` luke
Ю ли я? 🤔
Смутно помнится какое-то расширение с @-нотацией
кана
TypeApplications
кана
Ю ли я? 🤔
Спасибо
Vladimir
Да ладно, к type classes прикрутили явную аппликацию? Их вроде не для того делали ;)
Denis
это не связано с type classes
кана
не к тайпклассам
forM :: forall t m a b. ... => ...
Denis
Есть такое увтерждение, что для любого сколь-нибудь серьёзного Хаскельного проекта (или проектов) нужно держать свою кастомную Prelude. И вокруг этого утверждения идут горячие споры, кто-то всецело за свою Prelude, кто-то, напротив, говорит, что это лишняя работа, которая усложнит вход в проект.
Что думаете? Есть смысл в своей Prelude?
Denis
не держим, брат жив
Denis
чуть больше импортов копипастить
Alexander
кастомная прелюда зло
Alexander
но если лень писать импрты и есть много лишнего времени на её поддержку то можно
Alexander
может повысить качество кода и его однородность
Denis
я сам тоже не очень люблю кастомность в этом вопросе
Alexander
особенно для новичков (которые умеют читать код рядом, я не копипастить со стековерфлоу)
Denis
я бы сказал что если очень аккуратно подойти, то можно
Denis
но не нужно
Denis
Denis
и сколько у вас в твиге новичков и откуда инфа?!
кана
абсолютно противоположная альтернатива - не использовать никаких прелюдий вообще, импортить вообще все и квалифицированно/явно
Denis
содом какой-то предлагаете
Alexander
Alexander
а блин я ещё опять base/prelude путаю
Denis
а они связаны неразрывно энивей
Alexander
постмортем по инфраструктуре уже был?
Ю ли я? 🤔
а они связаны неразрывно энивей
Прелюдия и база - основные орудия,
Кто крепче них неразрывно связан?
Говорим "база" - подразумеваем "прелюдия",
Говорим "прелюдия" - подразумеваем "база"!
A64m
еще одну фичу вмерджили, которую в 8.4 не смогли, потому что 8.0 не компилировал этот код. Все же глюкавость у 8.0 была выше гхц-ной нормы
Alexander
это все стек виноват
Alexander
сами придумайте почему
Alexander
но это точно
Alexander
кстати при каком ghc стек то появился?
Leonid 🦇
7.8 или 7.10
Alexander
тогда все сходится
Denis
Друзья, а напомните пожалуйста, как сделать так, чтобы при использовании undefined вылетало предупреждение?
Alexander
определить свой undefined?
Alexander
c {-# Warning "undefined" "bla" #-}
Alexander
или использовать дырки вместо undefined
Alexander
или hlint натравливать
Denis
ок, спасибо
Дмитрий
У меня вопрос, вот допустим, я хочу из хаскеля создать мягкую ссылку на файл/диркторию. Или изменить то, куда ссылается существующая ссылка, как я могу это сделать?
Кроме того, интересует возможность сравнения двух ссылок (ссылки равны, если ссылаются на один и тот же файл), за ранее благодарю.
кана
сделать легко: https://hackage.haskell.org/package/unix-2.7.2.2/docs/System-Posix-Files.html#g:9
#!/usr/bin/env stack
{- stack
--resolver lts-11.1
--install-ghc runghc
--package base
--package unix
-}
import Control.Applicative (liftA2)
import System.Posix.Files (createSymbolicLink, readSymbolicLink)
main :: IO ()
main = do
writeFile "1" "hello"
createSymbolicLink "1" "1_1"
createSymbolicLink "1" "1_2"
print =<< liftA2 (==)
(readSymbolicLink "1_1")
(readSymbolicLink "1_2")
кана
сравнить тоже легко - следующая функция
Дмитрий
Ага, благодарю, это ровно то, что мне нужно!
Дмитрий
А если я хочу потом содержимое этой ссылки открыть в какой-то программе, чем мне это лучше сделать. На ум приходит только шелли...
кана
под содержимым ссылки ты понимаешь путь до файла, на который ссылается, или содержимое файла, на который ссылается?
Дмитрий
Под содержимым ссылки я подразумеваю файл.
Допустим, я хочу открыть картинку в просмотрщике...
Alexander
тогда нужно сделать exec просмотршика и передать ему путь
кана
по моему современные системы и так открывают ссылку правильно, не уверен что понял вопрос
Alexander
как и в любом другом языке