
Слава
04.12.2017
21:36:43

A64m
04.12.2017
21:37:02
зачем изучать хаскель? Работы-то нет

Egoarka
04.12.2017
21:37:20

Edgar
04.12.2017
21:37:25

Google

Евгений
04.12.2017
21:37:25
По поводу подборки литературы тут полгода обсуждают. Я всем советую тапл. Синтаксис хаскеля выучить несложно, нужно научиться думать в рамках теории типов

Denis
04.12.2017
21:37:35
мне нравится как A64m иногда забегает и подбивает итог за последние пару экранов

Alexander
04.12.2017
21:37:51

melancholiac
04.12.2017
21:37:52

kana
04.12.2017
21:37:54
конечно сразу давать решение это такое, но тут имхо просто невнимательность
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))

Alexander
04.12.2017
21:38:09
просто сейчас у тебя половина вещей где должна быть суть заменяется многоточиями

Denis
04.12.2017
21:38:16

Alexander
04.12.2017
21:38:18

Слава
04.12.2017
21:38:30

Denis
04.12.2017
21:38:32

melancholiac
04.12.2017
21:38:33

Alister
04.12.2017
21:38:40
а вообще начинать стоит с lyhfgg и http://haskellbook.com/

Google

Евгений
04.12.2017
21:38:43
Да, тапл это книжка пирсал

Denis
04.12.2017
21:38:46
статически типизированные яп

melancholiac
04.12.2017
21:39:05
о, спасибо

Alexander
04.12.2017
21:39:11
т.е. проверить, невнимательность это или нет можно только задав 100600 вопросов базовых

melancholiac
04.12.2017
21:39:16
утянул в берлогу :D

Alexander
04.12.2017
21:39:18
если что-то не так то объяснить

Egoarka
04.12.2017
21:40:45
да если одни книги читать, опыта совсем не прибавляется, решил попрактиковаться и поплыл, хм

Denis
04.12.2017
21:40:58
пирс кстати прикольный дядька, у него самый крутой лекторский голос, что я за жизнь слышал
с серьезным отрывом от остальных

Alexander
04.12.2017
21:41:59
лучше меййерского во всяком случае

Слава
04.12.2017
21:43:03

Alexander
04.12.2017
21:43:34
кстати кто там долго с Арно обсуждал, то как принимают?
или не из этого чятика ребята
у нас offline задача на день, зачастую NP-complete, потом ещё общение, общение важно
(хз поступил бы я если бы там с начала не работал)

Denis
04.12.2017
21:44:43

Alexander
04.12.2017
21:45:10
у Well Typed, весьма простая задача, в которой надо код исправить
в tmux + общение в это время в irc
самое крутое интервью у них что было

Google

Alexander
04.12.2017
21:46:04
onsite google разве что с ним сравнимо было
но у гуглов адреналина в итоге меньше

Евгений
04.12.2017
21:47:12

Alexander
04.12.2017
21:47:27
никто точного решения не требует : ]

Евгений
04.12.2017
21:47:52
Ну такое

Alister
04.12.2017
21:48:16
решите задачу комивояжера за полиномиальное время

Слава
04.12.2017
21:49:03

Alexander
04.12.2017
21:49:19
как хочется, вариантов много там
динамическое, позвать монте-карло, придумать хорошую эвристику

Denis
04.12.2017
21:50:02
а NP = P задачи у вас нет?

Alexander
04.12.2017
21:50:12
нету

Denis
04.12.2017
21:50:17
ну хоть так

Alexander
04.12.2017
21:50:22
вон выше Alister предлагает

Leonid
04.12.2017
21:51:35
Выпендриваются все эти конторы на собеседовании, а потом опердени пишут.

Слава
04.12.2017
21:51:46

Egoarka
04.12.2017
21:51:49

Alexander
04.12.2017
21:52:07
@kana_sama ну вот что ты наделал?

Denis
04.12.2017
21:52:20

Alexander
04.12.2017
21:52:42
у нас не так много coq-еров

Leonid
04.12.2017
21:52:47
HoTT coq?

Google

Egoarka
04.12.2017
21:53:06
тип в смысле
короче Arr2

Denis
04.12.2017
21:53:44
кто-то ничего не понял

Alexander
04.12.2017
21:54:08
я ж не зря спрашивал, объяснения что обозначает тип..

Egoarka
04.12.2017
21:54:52
ну да, видимо это и был ответ на вопрос к задаче

Denis
04.12.2017
21:54:54

Alexander
04.12.2017
21:55:02
ну да

Admin
ERROR: S client not available

Alexander
04.12.2017
21:55:27
много чего приветствуется, свой проект там и прочее

Евгений
04.12.2017
21:55:49

Denis
04.12.2017
21:55:58
огромная капитализация обязательно?

Alexander
04.12.2017
21:56:09
нет
@elemir90 норм предположение что человек просто очепятался

Denis
04.12.2017
21:56:40

Denis
04.12.2017
21:56:41
там потом будет Arr3 насколько я помню

Egoarka
04.12.2017
21:57:04
да, ну это я сам решу, по аналогии =)

Alexander
04.12.2017
21:57:43
> нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та
> тип в смысле короче Arr2
теперь то напишешь что такое Arr2?
и что такое не лямбда

Denis
04.12.2017
21:58:20

Google

Egoarka
04.12.2017
21:58:32
функция от двух переменных
или 2 каррированных функции

Alexander
04.12.2017
21:59:02
ну ладно куда-ни-шло, много лучше, чем многоточие

Edgar
04.12.2017
21:59:28


kana
04.12.2017
21:59:31
нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та
Arr2 - конструктор, который принимает функцию от двух аргументов. То есть сам Arr2 - функция от одного аргумента, где первый аргумент - функция от двух.
Чтобы смапать функцию внутри Arr2, нам для начала нужно эту функцию оттуда достать, сделать это можно через паттерн-метчинг или через селекторы/ключи рекорда:
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
fmap f g = Arr2 (\a b -> f (getArr2 g a b))
После того, как мы достали функцию от двух аргументов, которая возвращает a, нам нужно сделать новую функцию на основе этой, которая возвращает b. То есть мы создаем новую функцию от двух аргументов, передаем эти два аргумента в старую функцию, получаем значение типа a, которые мы отдаем в мапающую функцию, которая нам отдает b.
Ну и осталось обратно запихнуть новую функцию в Arr2, сделать это можно через конструктор-фунцию
Arr2 (\a b -> f (g a b))
или рекордную запись
Arr2 { getArr2 = (\a b -> f (getArr2 g a b)) }


Слава
04.12.2017
21:59:53

Denis
04.12.2017
22:00:00
мистер очевидность
зачем спойлеришь?

Alexander
04.12.2017
22:00:26


andretshurotshka?❄️кде
04.12.2017
22:00:42
Arr2 - конструктор, который принимает функцию от двух аргументов. То есть сам Arr2 - функция от одного аргумента, где первый аргумент - функция от двух.
Чтобы смапать функцию внутри Arr2, нам для начала нужно эту функцию оттуда достать, сделать это можно через паттерн-метчинг или через селекторы/ключи рекорда:
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
fmap f g = Arr2 (\a b -> f (getArr2 g a b))
После того, как мы достали функцию от двух аргументов, которая возвращает a, нам нужно сделать новую функцию на основе этой, которая возвращает b. То есть мы создаем новую функцию от двух аргументов, передаем эти два аргумента в старую функцию, получаем значение типа a, которые мы отдаем в мапающую функцию, которая нам отдает b.
Ну и осталось обратно запихнуть новую функцию в Arr2, сделать это можно через конструктор-фунцию
Arr2 (\a b -> f (g a b))
или рекордную запись
Arr2 { getArr2 = (\a b -> f (getArr2 g a b)) }
чет не знал про рекорд запись


Egoarka
04.12.2017
22:01:34
да вроде знал, но кхм, облажался
затуп на самом деле в функторах скорее всего был
не понимал что они такое
Arr2 - конструктор, который принимает функцию от двух аргументов. То есть сам Arr2 - функция от одного аргумента, где первый аргумент - функция от двух.
Чтобы смапать функцию внутри Arr2, нам для начала нужно эту функцию оттуда достать, сделать это можно через паттерн-метчинг или через селекторы/ключи рекорда:
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
fmap f g = Arr2 (\a b -> f (getArr2 g a b))
После того, как мы достали функцию от двух аргументов, которая возвращает a, нам нужно сделать новую функцию на основе этой, которая возвращает b. То есть мы создаем новую функцию от двух аргументов, передаем эти два аргумента в старую функцию, получаем значение типа a, которые мы отдаем в мапающую функцию, которая нам отдает b.
Ну и осталось обратно запихнуть новую функцию в Arr2, сделать это можно через конструктор-фунцию
Arr2 (\a b -> f (g a b))
или рекордную запись
Arr2 { getArr2 = (\a b -> f (getArr2 g a b)) }
спасибо)


Слава
04.12.2017
22:04:07
Arr2 - конструктор, который принимает функцию от двух аргументов. То есть сам Arr2 - функция от одного аргумента, где первый аргумент - функция от двух.
Чтобы смапать функцию внутри Arr2, нам для начала нужно эту функцию оттуда достать, сделать это можно через паттерн-метчинг или через селекторы/ключи рекорда:
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
fmap f g = Arr2 (\a b -> f (getArr2 g a b))
После того, как мы достали функцию от двух аргументов, которая возвращает a, нам нужно сделать новую функцию на основе этой, которая возвращает b. То есть мы создаем новую функцию от двух аргументов, передаем эти два аргумента в старую функцию, получаем значение типа a, которые мы отдаем в мапающую функцию, которая нам отдает b.
Ну и осталось обратно запихнуть новую функцию в Arr2, сделать это можно через конструктор-фунцию
Arr2 (\a b -> f (g a b))
или рекордную запись
Arr2 { getArr2 = (\a b -> f (getArr2 g a b)) }
То есть, это маппер из одного типа в другой. И не более.


Alexander
04.12.2017
22:04:29
как наиболее халявно и без синглетонов AscList зопилить

Denis
04.12.2017
22:04:29

Alexander
04.12.2017
22:04:35
через мамой клянусь?

Denis
04.12.2017
22:05:45

Alexander
04.12.2017
22:06:35
у меня тут и так линейные типы, ещё и тайплевел тащить

Alister
04.12.2017
22:06:44
тайплевел это какой-то грязный хак?

Denis
04.12.2017
22:06:54
а AscList это ascended list при вставке или я не так понял?