кана
конечно сразу давать решение это такое, но тут имхо просто невнимательность
кана
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
Alexander
просто сейчас у тебя половина вещей где должна быть суть заменяется многоточиями
Denis
Aliester
а вообще начинать стоит с lyhfgg и http://haskellbook.com/
Евгений
Да, тапл это книжка пирсал
Denis
статически типизированные яп
Евгений
melvin
о, спасибо
Alexander
т.е. проверить, невнимательность это или нет можно только задав 100600 вопросов базовых
melvin
утянул в берлогу :D
Alexander
если что-то не так то объяснить
Egor
да если одни книги читать, опыта совсем не прибавляется, решил попрактиковаться и поплыл, хм
Denis
пирс кстати прикольный дядька, у него самый крутой лекторский голос, что я за жизнь слышал
Denis
с серьезным отрывом от остальных
Alexander
лучше меййерского во всяком случае
Слава
да если одни книги читать, опыта совсем не прибавляется, решил попрактиковаться и поплыл, хм
Поэтому я и спрашиваю о тестовых заданиях из реальной практики
Alexander
кстати кто там долго с Арно обсуждал, то как принимают?
Alexander
или не из этого чятика ребята
Alexander
у нас offline задача на день, зачастую NP-complete, потом ещё общение, общение важно
Alexander
(хз поступил бы я если бы там с начала не работал)
Зигохистоморфный
Alexander
у Well Typed, весьма простая задача, в которой надо код исправить
Alexander
в tmux + общение в это время в irc
Alexander
самое крутое интервью у них что было
Alexander
onsite google разве что с ним сравнимо было
Alexander
но у гуглов адреналина в итоге меньше
Alexander
никто точного решения не требует : ]
Евгений
Ну такое
Aliester
решите задачу комивояжера за полиномиальное время
Слава
у нас offline задача на день, зачастую NP-complete, потом ещё общение, общение важно
Какое-то динамическое программирование? Оптимизация и т.п
Alexander
как хочется, вариантов много там
Alexander
динамическое, позвать монте-карло, придумать хорошую эвристику
Denis
а NP = P задачи у вас нет?
Alexander
нету
Denis
ну хоть так
Alexander
вон выше Alister предлагает
Leonid 🦇
Выпендриваются все эти конторы на собеседовании, а потом опердени пишут.
Egor
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
спасибо, я так понимаю Arr2 выступает в кач-ве функции от двух переменных? вроде бы все на своих местах, но все-таки трудновато для первого раза, не решил бы сам
Alexander
@kana_sama ну вот что ты наделал?
Alexander
у нас не так много coq-еров
Leonid 🦇
HoTT coq?
Egor
@kana_sama ну вот что ты наделал?
нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та
Egor
тип в смысле короче Arr2
Denis
кто-то ничего не понял
Alexander
я ж не зря спрашивал, объяснения что обозначает тип..
Egor
ну да, видимо это и был ответ на вопрос к задаче
Denis
у нас не так много coq-еров
Вакансию когда-то постили, там было написано. 🙂
Alexander
ну да
Alexander
много чего приветствуется, свой проект там и прочее
Евгений
fmap f (Arr2 g) = Arr2 (\a b -> f (g a b))
Ты из тех людей, что при встрече рассказываешь всем развязки самых обсуждаемых фильмов и сериалов?
Denis
огромная капитализация обязательно?
Alexander
нет
Alexander
@elemir90 норм предположение что человек просто очепятался
Denis
Ты из тех людей, что при встрече рассказываешь всем развязки самых обсуждаемых фильмов и сериалов?
А ты смотрел этот фильм, ну там где в конце <…>? А, я вспомнил - Крестный Отец.
Зигохистоморфный
там потом будет Arr3 насколько я помню
Egor
да, ну это я сам решу, по аналогии =)
Alexander
> нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та > тип в смысле короче Arr2 теперь то напишешь что такое Arr2?
Alexander
и что такое не лямбда
Denis
там потом будет Arr3 насколько я помню
для тех кому заспойлили Arr2?
Egor
функция от двух переменных или 2 каррированных функции
Alexander
ну ладно куда-ни-шло, много лучше, чем многоточие
кана
нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та
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)) }
Слава
> нет, вот честно, я с самого начала думал, что это не лямба, а фигня какая-та > тип в смысле короче Arr2 теперь то напишешь что такое Arr2?
Такое ощущение, что вживую отыгрывается сюжет одной из растаманских сказок Дмитрия Гайдука. Там был чудесный вопрос "что такое говно".
Зигохистоморфный
мистер очевидность
Зигохистоморфный
зачем спойлеришь?
andrei
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)) }
чет не знал про рекорд запись
Egor
да вроде знал, но кхм, облажался
Egor
затуп на самом деле в функторах скорее всего был