Size: a a a

2020 December 03

AA

A64m AL256m qn<co... in Haskell
GNU/Vsevolod
Я думал, это больше для того, чтобы из коробки бьіло меньше синтаксиса -> бьістрее компиляция
ну это много времени не занимает, да и весь синтаксис из экстеншонов все равно надо парсить чтиоб писать вот тут у вас такой-то экстеншон используется, а вы его не включили
источник

JS

Jerzy Syrowiecki in Haskell
GNU/Vsevolod
А потом появляется crate::foo::bar::baz::...::SomeTrait;
нет, появляется локальное use SomeTrait
источник

JS

Jerzy Syrowiecki in Haskell
а всё перед этим уже есть в импортах
источник

к

кана in Haskell
GNU/Vsevolod
А потом появляется crate::foo::bar::baz::...::SomeTrait;
Foo.Bar.BazX
или
Foo.Bar.Baz.X

есть ли тут какая-то существенная разница?
источник

G

GNU/Vsevolod in Haskell
кана
Foo.Bar.BazX
или
Foo.Bar.Baz.X

есть ли тут какая-то существенная разница?
Да
источник

к

кана in Haskell
я тоже считаю что есть, и эта разница в том, что второй вариант удобнее, потому что
а) его можно раскрыть при желании
б) короче паттерны и конструирования с открытым неймспейсом
в) имена конструкторов проще, без какого-то мусора, навязанным проблемами языка

иметь в коде Nil, VNil, HNil, RNil, TNil это ужасно (на самом деле не очень ужасно, но как минимум это грязно, и это в хаскеле отторгает лично меня)
источник

к

кана in Haskell
поэтому я давно использую duplicate record fields и называю все поля рекордов без всяких префиксов и суффиксов
источник

G

GNU/Vsevolod in Haskell
кана
Foo.Bar.BazX
или
Foo.Bar.Baz.X

есть ли тут какая-то существенная разница?
Первое вообще напоминает издержки с++/java, где бьіли/есть int mClassMember или int _privateField
источник

JS

Jerzy Syrowiecki in Haskell
ждём -XDuplicateSumConstructors
источник

IK

Ilya Kos in Haskell
кана
поэтому я давно использую duplicate record fields и называю все поля рекордов без всяких префиксов и суффиксов
+
источник

G

GNU/Vsevolod in Haskell
кана
поэтому я давно использую duplicate record fields и называю все поля рекордов без всяких префиксов и суффиксов
Можно краткий пример, не сильно понимаю, как это
источник

к

кана in Haskell
data X = X { a :: Int }
data Y = Y { a :: Int }

вместо

data X = X { xA :: Int }
data Y = Y { yA :: Int }
источник

к

кана in Haskell
без DRF будет ругаться
источник

G

GNU/Vsevolod in Haskell
кана
data X = X { a :: Int }
data Y = Y { a :: Int }

вместо

data X = X { xA :: Int }
data Y = Y { yA :: Int }
понял
источник

G

GNU/Vsevolod in Haskell
Сто॑ит ли писать сигнатуру вспомогательных ф-ций внутри where?
источник

A

Aleksandr Khristenko in Haskell
кана
поэтому я давно использую duplicate record fields и называю все поля рекордов без всяких префиксов и суффиксов
Для полного счастья еще NoFieldsSelectors осталось дождаться.
источник

к

кана in Haskell
GNU/Vsevolod
Сто॑ит ли писать сигнатуру вспомогательных ф-ций внутри where?
нет, но иногда приходится
источник

G

GNU/Vsevolod in Haskell
Ну да, я имел ввиду кроме случаев, когда невозможно заинферрить
источник

A

Aleksandr Khristenko in Haskell
кана
нет, но иногда приходится
А почему нет?
источник

к

кана in Haskell
Aleksandr Khristenko
А почему нет?
а зачем? В локальных функциях сингнатура и так зачастую выводится, в том числе и человеком, лишняя сигнатура может захламить простой код и сделать его сложнее читаемым

больше кода это не всегда хорошо, как и меньше кода, код где на всех определениях есть сигнатуры не сильно лучше кода без сигнатур вовсе, должен быть какой-то баланс, когда человек сам решает, что вот тут сигнатура поможет, а вот тут никакого смысла в ней нет, но в болшинстве случаев она все равно не нужна
источник