@haskellru

Страница 1504 из 1551
A64m
08.10.2018
12:38:38
F#

Alexander
08.10.2018
12:38:54
F#
и какого оно было?

A64m
08.10.2018
12:39:14
да ничего хорошего

Google
Alexander
08.10.2018
12:39:50
да ничего хорошего
а теперь что-то хорошее есть?

A64m
08.10.2018
12:42:06
kana
08.10.2018
12:50:25
Ну да, а вот в серьезный продакшен язык их впилить куда сложнее

A64m
08.10.2018
12:57:50
чем проще фича, тем больше людей хотят пообсуждать пару-тройку лет, ведь в или-паттернах-то каждый разбирается! зато квантифайед констрейнтс пролетает через комитет за месяц в режиме > no comments. But two +1 and otherwise silent agreement. I conclude that we have reached positive consensus. чет мутное, не охота разбираться, лучше промолчим - думают комитетчики

Abbath
08.10.2018
13:10:28
?

Вроде есть or-pattern на квазиквотах

http://hackage.haskell.org/package/OrPatterns

A64m
08.10.2018
13:22:18
сейчас моднее на плагинах делать

Terminator
08.10.2018
15:01:27
Timo будет жить. Поприветствуем!

@webuiuxdesigner будет жить. Поприветствуем!

@Neujaskre будет жить. Поприветствуем!

Google
Denis
08.10.2018
18:48:48
интересно, можно сделать частичное применение для тайпклассов?

kana
08.10.2018
18:51:55
ну да

возможно я не понял твой вопрос

Denis
08.10.2018
18:52:43
class B = A SomeType

class A x y ...

kana
08.10.2018
18:53:02
type B = A SomeType

Alexander
08.10.2018
18:53:03
можно, кметтомагией

Denis
08.10.2018
18:53:13
не тайпалиас

а полноценный тайпкласс

Alexander
08.10.2018
18:53:54
чтоб я сходу помнил

kana
08.10.2018
18:53:59
а полноценный тайпкласс
а в чем будет разница?

Alexander
08.10.2018
18:54:01
через вспомогательные класы

и type

Denis
08.10.2018
18:59:36
поясню более детально data X a = ... class A x y ... fun :: x -> y type B = A X

ах ConstraintKinds

kana
08.10.2018
19:02:07
хм, ну тут каинды не сходятся вроде

Denis
08.10.2018
19:03:06
а частичное применение я имею ввиду потом instance B SomeType where ...

поэтому я и написал

class B = A X

Google
kana
08.10.2018
19:04:44
class A a b where f :: a -> b instance A Int String where f = show class A Int b => B b instance A Int b => B b g :: B String => Int -> String g = f ?

Denis
08.10.2018
19:11:05
в инстансах B не будет виден метод f

kana
08.10.2018
19:11:13
будет

Denis
08.10.2018
19:11:29
ааа

kana
08.10.2018
19:11:30


Yuriy
08.10.2018
19:11:39
поясню более детально data X a = ... class A x y ... fun :: x -> y type B = A X
может, как-то так? class A X y => B y instance A X y => B y

Denis
08.10.2018
19:11:39
ну ты взял и определил инстанс для A

а надо без определения инстансов для A

kana
08.10.2018
19:12:23
ну тогда вообще не понятно, что ты хочешь

Denis
08.10.2018
19:13:01
считай это хитрым абстрактным классом

Yuriy
08.10.2018
19:14:12
не пойму, чем инстанс мешает

kana
08.10.2018
19:14:42
наверное круто было бы какой-то реальный пример использования с псевдокодом

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

типа есть A и есть множество классов, которые в A

Denis
08.10.2018
19:16:57
data X a = ... class Functor f => A f x where someFn :: f x -> String class B = A X instance B SomeType where someFn :: ?

нигде для A не делается инстансов

kana
08.10.2018
19:17:22
data X a = ... class Functor f => A f x where someFn :: f x -> String class B = A X instance B SomeType where someFn :: ?
я не понимаю этот код, тут же каинды не сходятся

X у тебя Type->Type

Denis
08.10.2018
19:18:07
исправил

Google
kana
08.10.2018
19:18:48
а чего не подходит "семейство классов", где индекс - первый аргумент

то есть почему нельзя просто сделать instance A X SomeType? подразумевается, что A X может быть много?

тогда можно добавить еще один индекс

Denis
08.10.2018
19:19:49
A X будет фиксирован

меняется только b

вот я и хочу что-то частичного применения для тайпклассов

kana
08.10.2018
19:21:11
то есть чтобы прояснить, никакой пользы от этого нет, ты просто хочешь более красивый код?

то есть не писать постоянно A X Int A X String

а просто B Int B String?

Denis
08.10.2018
19:22:33
в принципе да

kana
08.10.2018
19:22:33
или же в этом есть какая-то польза/мощность, которую я не понял?

Denis
08.10.2018
19:22:39
болерплейт не хочется

kana
08.10.2018
19:26:07
data X a deriving Functor data A f x where A :: Functor f => { someFn :: f x -> String } -> A f x type B = A X bInstance1 :: B Int bInstance1 = A{..} where someFn _ = "1" bInstance2 :: B String bInstance2 = A{..} where someFn _ = "2" тогда единственная идея - сделать на явных словариках

Yuriy
08.10.2018
19:50:08
фигнёй занимаетесь. лучше бы драйвер для Постгреса написали

A64m
08.10.2018
19:54:17
хотя бы хештаблицу нормальную

Imants
08.10.2018
20:35:06
А ghc-mod уже починили?

Dmitry
08.10.2018
20:35:30
А его надо чинить?

Есть же hie

Imants
08.10.2018
20:35:40
Для 8.6.1

Google
Imants
08.10.2018
20:36:22
А hie делает всё то же, что и ghc-mod?

Yura
08.10.2018
20:37:55
ghc-mod забросили

в пользу hie

т.е. его поддержка по остаточному принцыпу

Dmitry
08.10.2018
20:38:35
https://github.com/haskell/haskell-ide-engine/blob/master/README.md#this-is-not-yet-another-ghc-mod-or-ide-backend-project

A64m
08.10.2018
20:39:31
hie использует гхц-мод

Imants
08.10.2018
20:42:55
новую вилку ghc-mod?

A64m
08.10.2018
20:44:13
да, они его допиливают, хотя официальный уже давно не релизится

Abbath
08.10.2018
21:12:37
hie вроде даже правильно сделан

Евгений
08.10.2018
21:15:10
https://www.fpcomplete.com/blog/2018-haskell-survey-results

Рассказывают как все в восторге от хаскеля (кто пользуется)

Alexander
08.10.2018
21:52:03
не верю

Страница 1504 из 1551