Vasily
Опять дед с батей по пьяни сцепились
Anonymous
fun (e1,e2,_,_) -> (e1,e2) - чистая функция, котора забывает структуру чего-то там. хм. я вижу, что она используется в каком-то мапинге, пока не ясно каком, но смысл в том, что мы от чего-то избавляемся. оевидно, нужно знать семантику Choice и тогда mapl наверно сам прояснится, но думаю, это обычный функтор.
Anonymous
handle2 ag1 ag2 f |> .. - банальная вещь
Shub
handle2 ag1 ag2 f |> .. - банальная вещь
другими словами “я нашел пару знакомых слов”
Anonymous
ясно что ты получаешь что-то, что потом некоторым образом маиптся. мне сейчас не важно, что и куда, хотя по названию типов уже тоже кое-что можно предоложить. если мне будет нужно узнать - я знаю четко где это исктаь.
Shub
очевидно, что пайпы не вызывают затруднений
Anonymous
разложенное на такие примитивы НИЧТО не вызывает затруднений
Anonymous
я не понимаю реально, в чем там сложность
Shub
вот ты открываешь ревью, видишь кусок типа (Choice.mapl (fun (e1,e2,_,_) -> (e1,e2))
Igor
вот тебе пример использования тех типов, прям полная функция
Только в этом вопросе контекст потерян, код начинаешь смотреть от места где ты его понимаешь, а не с середины модуля
Anonymous
если знаешь семантику контейнеров, то ее быть не должно
Anonymous
при условии, что маппинг - это маппинг и т.д.
Крылатый
вот ты открываешь ревью, видишь кусок типа (Choice.mapl (fun (e1,e2,_,_) -> (e1,e2))
А зачем так параметры называть? (или ты это просто переименовал их для копипасты в чат?)
Anonymous
это код очень понятный, при условии, что смысл фукнций в том, как они себя ведут. понятно, что именно он отбрасывает, понятно, что что-то мапится, понятно, что этому предшествует некая подготовка. а если мы перейдем на язык "это функтор" или "это - моноид/полугруппа", то вопрос только остается один - какова его семантика?
Shub
Только в этом вопросе контекст потерян, код начинаешь смотреть от места где ты его понимаешь, а не с середины модуля
там контекст потерян начиная с проекта в солюшене. 90% типов импортируются из нашего бинарного пакета откуда-то с местной репы и подсказка выдает что-то в стиле type ABld<‘a, _, ‘c’,_> = { putter: _ -> ‘a; id: ‘c -> _ }
Anonymous
но на ревью, кроме прочего, ты должен быть хотя б немного в теме бизнеса, что, откуда, зачем и почему. и понять это должно быть х10 легче
Shub
(я конечно мог бы объяснить тебе, что тут *на самом деле* происходит, но это все-таки дидактический пример)
Anonymous
я не знаю что такое Choice, поэтому отвечу так. "это нечто, скорее всего фукнтор, которые в данном случае работает, видимо, с туплом из 4 элементов и просто отрбрасывает пару ненужных параметров. сразу ясно, что делается это затем, чтобы "совместить" по типам эту штуку с чем-то другим. чтобы глубже помочь - надо знать что есть Choice. будь там List.map (т.е. друго функтор), ответ был бы абсолютно четким.
Shub
напомню, что на ревью ты это все видишь обрывочными кусками. тащить каждую ветку в ИДЕ для ревью ты просто забодаешься
Vladyslav
это ж просто неизвестное название функции. такого в ОО не может произойти?
Anonymous
лично для меня в этом и главная фишка "функциональщины" в ее лучшем проявлении - она позволяет мыслить достаточно абстрактно о коде. я знаю, что именно делает этот кусок при всем при том, что я не знаю, что именно делает этот кусок.
Anonymous
я не F#, я сочувствующий. так-то мне в F# сильно Тайп Классов не хватало
Shub
да я в общем-то сразу это понял, т.к. люди с практическим опытом даже со скамьи решили не вставать
Anonymous
и пока их туда не завезут, я не горю желанием писать конкретно на F#, хотя чтообы съебать с C# и на это соглашусь
Shub
их туда не завезут
Shub
короче, тут происходит вот что
Shub
это такая слабая попытка мегамозга применить функцию к двум сущностям одновременно. функция задумана как асинхронный эффект, который возвращает свои результаты завернутыми в Result<>
Hog
короче, тут происходит вот что
(тут должна быть картинка с Вилямом Гейтсом 3 со скрюченными ручками :)))
Shub
причем эта функция применяется ровно в одном месте
Shub
в том месте f возвращает четыре документа, из которых ПОЧЕМУ-ТО последние два не используются
Shub
они серенькие в том месте
Shub
рассматриваемая функция - плод отчаянной борьбы с type inference в течении пары дней, именно поэтому там Choice, а не Result
Shub
( как известно любому эфшарписту Result - это псевдоним типа для Choice)
Shub
mapl - это плод воспаленного хаскелем другого мегамозга, чтобы не дай бог кто-то не написал function | Ok a ->a | Error e -> raise e, потому что это же нЕфУнКцИоНаЛьНо
Anonymous
звучит как бред. особенно, учитывая, что у нас .НЕТ и от сайдэффектов никто не застрахован
так одно дело - когда это абсолютно необходимо и тебя заранее предупреждают, мол, "вы идете по минному полю" и совсем друго дело - когда это в руках автора кода и он принимает решение о том, по какому пути двигаться. или я не прав?
Dmitry
Ладно, кончайте. Ситуация - мне тут ехать минут сорок или даже час, а все подкасты закончились. Подкиньте чего включить посмотреть-послушать в пути толкового
Shub
Алан Уотс “Путь воды”, читает автор, разумеется
Anonymous
не то, чтобы ты совсем не прав. ты не совсем прав, скорее
вот конкретно в случае того кода - сколько бы тебе понадобилось времени, чтобы понять что он делает, при твоем знании F#?
Anonymous
если ты реально сосредоточен
Hog
не то, чтобы ты совсем не прав. ты не совсем прав, скорее
https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_
Hog
Читает автор :)
Dmitry
Алан Уотс “Путь воды”, читает автор, разумеется
Это где если поругаться на воду, а потом заморозить, то кристаллы будут некрасивые?
Anonymous
хочешь сказать, больше 30 минут?
Shub
так одно дело - когда это абсолютно необходимо и тебя заранее предупреждают, мол, "вы идете по минному полю" и совсем друго дело - когда это в руках автора кода и он принимает решение о том, по какому пути двигаться. или я не прав?
автор занес полкузова велью на наше поле и свинтил сначала в другой проект, а потом вообще в другую компанию, буквально через полгода, когда это надо было мейнтейнить
Hog
Тёмную Башню!
Это очень надолго
Shub
уотсовские лекции доступны в полном объеме кстати
Крылатый
Это очень надолго
Ну всего-то семь томов) А ваще первый том можно и начать. Очень хорошо.
Крылатый
Ты бы ещё Гиперион посоветовал (там только первая книга ок)
Hog
Да ну, фу, такое себе.
Книга, кстати, интереснее сериала
Shub
в подавляющем большинстве случаев я мог бы переписать проблемные куски, если б это не было таким тесносвязанным и хрупким… веществом
Shub
у нас нефальсифицируемые тесты например
Крылатый
Книга, кстати, интереснее сериала
Я сериал как раз и смотрел мало (часть первого сезона)
Shub
еще хорошее “Табу на знание того, кто ты есть”. ну и лекции по философии даьнего востока, чисто повествовательные, очень классные
Shub
он был католическим священником, так что изучал предмет в высшей степени профессионально
Shub
чертов ключик
Hog
Я чо-то сделал не то 😩 и у меня почему-то пропало Option.defaultValue 😩
Alexey
это скриншот сообщений об ошибках?
Hog
Умри
Василий :) Ты чо какой сегодня недобрый? :)
Alexey
велосипед ему дайте
Alexey
сразу подобреет
Vasily
На самом деле устал просто
Vasily
Буду два дня лежать
Hog
из того, что делал - зареференсил FSharp.Collections.ParallelSeq
Hog
Буду два дня лежать
отличный план :)