@haskellru

Страница 1195 из 1551
Pavel
15.05.2018
08:32:29
но топикстартеру теоркат или хаскель?
мне хаскель, про теоркат - это я в свете гугления и читания чата - стал сомневаться что хаскеля мало и важно знать все эти абстрактные абстракции

Евгений
15.05.2018
08:32:58
хейт-спич разрешен против некоторых категорий граждан. Например против белых цисгендерных мужчин увлекающихся теорией категорий.
> увлекающихся теорией категорий Я тут вижу антисемитизм. И нужно ещё доказать, что я цисгендерный

Dmitry
15.05.2018
08:33:13
лучше что-то написать на хаскеле, пртом провести разбор и посчитать, сколько потребовалось теорката

Google
Евгений
15.05.2018
08:34:33
Александр
15.05.2018
08:34:41
мне хаскель, про теоркат - это я в свете гугления и читания чата - стал сомневаться что хаскеля мало и важно знать все эти абстрактные абстракции
В чате есть небольшая группа лиц, которые любят обсуждать зигоморфизмы. Это круто, но это не про Хаскель. Просто игнорь их

Евгений
15.05.2018
08:35:47
Если смотреть на чат, то может показаться, что знание интерсекциональной теории тоже важно для написания продукта на хаскеле

Pavel
15.05.2018
08:36:28
лучше что-то написать на хаскеле, пртом провести разбор и посчитать, сколько потребовалось теорката
мои мысли были такие что я буду писать по началу на хаскель, сквозь призму опыта на других языках, что по началу ок. думал откуда и как дальше брать примеры решения задач согласно идеологии хаскеля, и подумал что раз тор кат тут часто гуляет, то это куда-то в эту сторону.

Pavel
15.05.2018
08:38:12
в общем пока стратегия такая - учу базу хаскеля и пишу как идёт, а там уже когда и если дойду до теор кат, и это будет заходить - то посмотрю в эту сторону, а пока можно не сильно лезть в эту сторону и просто освоить хаскель как отдельно язык

Pavel
15.05.2018
08:39:06
понял, благодарю всех участников ?

Alexander
15.05.2018
08:39:44
"теоркат" нужен когда задача хорошо попадает под какую-то модель

но и без этого можно прекрасно обойтись

Александр
15.05.2018
08:40:10
А если теоркат на задачу не налазит, что делать?

Alexander
15.05.2018
08:40:26
к тому же обычно теоркат базовый, а не та жесть которую тут частенько обсуждают

Google
Alexander
15.05.2018
08:40:39
что делать если паттерн factory не решает вашу задачу?

Ilya
15.05.2018
08:40:53
уйти в девопсы

Александр
15.05.2018
08:40:56
что делать если паттерн factory не решает вашу задачу?
Менять задачу. Не отказываться же от паттерна

Leonid
15.05.2018
08:41:08
Евгений
15.05.2018
08:41:23
уйти в девопсы
И писать на го

Александр
15.05.2018
08:43:02
Программирование на Haskell - это ремесло, искусство или наука?

Евгений
15.05.2018
08:43:17
Инженерия?

Evgeniy
15.05.2018
08:43:31
Dmitry
15.05.2018
08:43:31
это деятельность

Александр
15.05.2018
08:43:45
Инженерия?
Хороший ответ, но пока еще вроде только зарождается.

Александр
15.05.2018
08:44:30
это искать работу полгода
Оба раза меня работа сама находила, и вот еще был третий раз от одного местного обитателя, и вот еще четвертый раз люди пришли. Сегодня собеседование.

Alexander
15.05.2018
08:47:44
фейсбук небось, они всем писали?

Leonid
15.05.2018
08:47:57
И в четвёртый раз пришли люди, и собеседовали его.

Alister
15.05.2018
08:47:58
хаскелистов нада

Александр
15.05.2018
08:49:02
фейсбук небось, они всем писали?
Не, товарищи из Эквадора ?

Alexander
15.05.2018
08:49:16
не Stack builders?

Александр
15.05.2018
08:49:21
Да, они

Google
Александр
15.05.2018
08:49:32
А что интересного про них можешь рассказать?

Владислав
15.05.2018
08:49:38
https://well-typed.com/blog/2018/03/haskell-development-job-with-well-typed Интересно, у нас здесь есть люди, которые бы хотели заняться такой работой?

Alexander
15.05.2018
08:49:40
я бы дважды подумал перед тем как соглашаться

Александр
15.05.2018
08:49:54
Ну я пока и не соглашался.

Alexander
15.05.2018
08:50:18
@metaxis я к ним пытался устроиться, но в тот год взяли Бена Гамари

Andrei
15.05.2018
08:50:26
кстати фейсбук нанимает людей пилить GHC

Alexander
15.05.2018
08:50:39
учитывая они берут человека в год, шансов попасть мало

я попал в четверку лучших кандидатов тогда

Владислав
15.05.2018
08:51:10
Alexander
15.05.2018
08:51:28
у них самое классное интервью было из всех на которых я был

Aleksey
15.05.2018
08:51:30
Фейсбук ковровые бомбардировки устраивает походу - мне и в Linkedin написали и на почту (рекрутер какой-то) и на реддите вакансия

Владислав
15.05.2018
08:52:04
@qnikst А в этом году не хотите попробоваться? Tuesday, 27 March 2018 Два месяца назад вакансия была.

Alexander
15.05.2018
08:52:11
нет :)

Владислав
15.05.2018
08:52:25
у них самое классное интервью было из всех на которых я был
А можно по-подробнее, чем оно интересное?

Alexander
15.05.2018
08:52:25
меня работа в Tweag устраивает более-менее

оно по irc :)

весьма интересная атмосфера

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

задачку - по ssh подключиться и разобраться в чем проблема и если получится поправить, причем програмка очень маленькая

Leonid
15.05.2018
08:54:35
это даже мрачнее чем whiteboard

Google
Alexander
15.05.2018
08:55:10
да ну, вообще класс

Andrei
15.05.2018
09:01:26
это даже мрачнее чем whiteboard
как раз наоборот, ящетаю

Ilya
15.05.2018
09:06:47
Вопрос по линзам. Как-то можно пройтись по всем сеттерам структуры, чтобы над каждым выполнить какое-то действие? То есть для вот такой структуры data Crowd a = Crowd {_first :: a, _second :: a, _third :: a} deriving Show makeLenses ''Crowd Я хочу поработать с чем-то типа Crowd (Lens' (Crowd a) a), то есть сразу со всеми сеттерами. Вот минимальный пример, зачем это может понадобиться: {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RankNTypes #-} import Control.Lens data Crowd a = Crowd {_first :: a, _second :: a, _third :: a} deriving Show makeLenses ''Crowd new :: Int -> Crowd Int -> Crowd (Crowd Int) new x c = Crowd {_first = set first x c, _second = set second x c, _third = set third x c} Хочется функцию new написать по-нормальному, не используя внутреннюю реализацию типа Crowd. @kana_sama

kana
15.05.2018
09:08:09
... deriving Functor fmap

Ilya
15.05.2018
09:08:37
... deriving Functor fmap
а что fmap ать будем?

Alexander
15.05.2018
09:09:09
(const x)

kana
15.05.2018
09:09:28
{-# LANGUAGE DerivingFunctor #-} data Crowd a = Crowd { _first :: a , _second :: a , _third :: a } deriving (Show, Functor) makeLenses ''Crowd new :: Int -> Crowd Int -> Crowd Int new x = fmap (const x)

Ilya
15.05.2018
09:09:29
я имею в виду контейнер какой

kana
15.05.2018
09:10:15
а

я увидел

Alexander
15.05.2018
09:10:57
это уже Co* какие-то

kana
15.05.2018
09:11:04
в каждом поле поле у тебя копия Crowd с только этим изменным полем

да, выглядит как комонада какая-то

Alexander
15.05.2018
09:11:10
угу

kana
15.05.2018
09:12:22
ну все же не думаю, что в линзах есть что-то, что отдает список линз или линзу текущего поля во время траверса или что-то подобное

с generic такое написать можно наверное

Alexander
15.05.2018
09:13:20
я бы не парился и написал руками

Sergey
15.05.2018
09:14:32
uniplate стоит попробовать

kana
15.05.2018
09:14:47
fields :: [Lens (Crowd a) a] fields = [first, second, third] new x c = map (\field -> set field x c) fields

Google
Ilya
15.05.2018
09:15:14
я бы не парился и написал руками
руками не проблема написать, но позже тип Crowd будет не конкретный, в виде data Crowd :: * -> * (data family). А реализация new всё равно должна быть. *Правда я ещё не разбирался с data family, но вроде это как раз то что нужно

Alexander
15.05.2018
09:15:34
тогда generic надо

а не линзы

Ilya
15.05.2018
09:16:16
generic-lens?

Alexander
15.05.2018
09:16:35
просто свой класс с generic

линзы зачем тут тебе?

Ilya
15.05.2018
09:17:10
линзы зачем тут тебе?
для set понадобились

Alexander
15.05.2018
09:17:12
который делаеть new :: Generic f => a -> f a -> f (f a)

зачем тебе set?

Ilya
15.05.2018
09:17:44
Alexander
15.05.2018
09:18:22
в общем самый простой способ - сделать класс: class Duplicate f where dup :: a -> f a -> [f a]

написал для кого надо руками, а потом сделать generic реализацию

uniplate стоит попробовать
c uniplate насколько такое просто пишется? вроде highlevel комбинаторов нету

хм.. с generic-lens наверное тоже можно

A64m
15.05.2018
09:20:46
лучше бы желающие изучить хаскель вместо теорката изучали его имплементацию, теребили бы всякие игрушечные стг-интерпретаторы хоть понимали бы как ленивость работает

я не понял задачу про линзы

Alexander
15.05.2018
09:21:49
блин f (f a) выше конечно же

Ilya
15.05.2018
09:23:08
зачем тебе set?
set мне понадобился в функции forget. Вот код: {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RankNTypes #-} import Control.Lens data Crowd a = Crowd {_first :: a, _second :: a, _third :: a} deriving Show makeLenses ''Crowd type Man = forall a. Lens' (Crowd a) a new :: Int -> Crowd Int -> Crowd (Crowd Int) new x c = Crowd {_first = set first x c, _second = set second x c, _third = set third x c} forget :: (Enum a, Bounded a) => Man -> Crowd a -> [Crowd a] forget man c = [set man x c | x <- [minBound .. maxBound]] Пример работы: λ> forget first (Crowd True True True) [Crowd {_first = False, _second = True, _third = True},Crowd {_first = True, _second = True, _third = True}] Функция new более сложная, и там внутри должен использоваться forget

Alexander
15.05.2018
09:23:36
я не понимаю смысла forget

Leonid
15.05.2018
09:23:43
https://www.youtube.com/watch?v=a7R-2vtPLDM комитетчики осваивают медийное пространство для ведения войны

Alexander
15.05.2018
09:24:00
и не вижу зачем там set прям обязательно

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