PJ>Ну да, реальный мир пишет на разных языках, как и почему это должно останавливать от перехода на тот же хаскель? Некоторые, типа фейсбука и гугла, так в каких-то своих проектах и сделали.
PJ>У тебя какая-то статистка в подтверждение есть или просто ветер так палец обдул?
Только мой опыт и описания практически любого «мегакрутого» проекта с презентаций и конференций.
M>>ВНЕЗАПНО там:
PJ>Сова и глобус. Есть куча компаний которые просто используют. Пример. https://www.netscout.com/arbor-ddos я знаю ребят оттуда, начали сами, потому что затрахались со скалой. Теперь-то есть ядро экспертов, да.
Затрахались с одним языком, описываемым, какой он крутой, и решили перейти на другой
M>>А так да – Хаскель используется, и вы тоже используйте, все будет хорошо :D PJ>Меня просто убивают подобные споры от профессионалов. Ну, блин, откатитесь на 30-40 лет назад, и, внезапно, все те же разговоры о пользе OOP. В 90м мне один чувак доказывал, что все это баловство и любое решение можно прекрасно написать на фортране. Он, разумеется, прав, любую программу можно написать даже на brainfuck.
Твое возражение даже возражением нельзя назвать. Какой-то набор бессвязных «ты не прав потому что».
PJ>>У тебя какая-то статистка в подтверждение есть или просто ветер так палец обдул?
M>Только мой опыт и описания практически любого «мегакрутого» проекта с презентаций и конференций.
Ну, я примерно так и подумал.
M>Затрахались с одним языком, описываемым, какой он крутой, и решили перейти на другой
Упражнение в остроумии?
M>Твое возражение даже возражением нельзя назвать. Какой-то набор бессвязных «ты не прав потому что».
Возражение? А на что у тебя возражать? На фантазии и предрассудки?
Мне просто показалось забавным цикличность с которой люди оправдывают свое нежелание отбросить устаревший опыт.
PJ>Возражение? А на что у тебя возражать? На фантазии и предрассудки?
Это опыт, сын ошибок трудных
PJ>Мне просто показалось забавным цикличность с которой люди оправдывают свое нежелание отбросить устаревший опыт.
Мой «устаревший опыт» включает в себя два десятка языков программирования, включая ФП. На сказочников про крутость и невероятность <любой ЯП> я давно смотрю с усмешкой.
Здравствуйте, Mamut, Вы писали:
M>Это опыт, сын ошибок трудных
Твой опыт по ощупыванию жопы слона и глубокие выводы о его привычках.
PJ>>Мне просто показалось забавным цикличность с которой люди оправдывают свое нежелание отбросить устаревший опыт.
M>Мой «устаревший опыт» включает в себя два десятка языков программирования, включая ФП. На сказочников про крутость и невероятность <любой ЯП> я давно смотрю с усмешкой.
А мартышка попробовала с полдюжины очков. Числа сами по себе не всегда впечатляют.
Если на всех на них писать как на фортране, то ничего лучше фортрана и не найти никогда. Функциональность это про композицию и типы, в основном. А тебе не хватает только паттерн матчинга. Вот такой твой опыт. Ну усмехайся, чё.
Здравствуйте, Mamut, Вы писали:
M>Функциональные подходы, а не языки, могут упростить разработку. Любой язык — это инструмент со своими границами применимости. После Эрланга мне сильно не хватает паттерн-матчинга и tail-call optimisation.
M>>Функциональные подходы, а не языки, могут упростить разработку. Любой язык — это инструмент со своими границами применимости. После Эрланга мне сильно не хватает паттерн-матчинга и tail-call optimisation.
IT>Где? В C#? Как тебе такое?
IT>https://github.com/igor-tkachev/Linq.Expressions.Deconstruct
Интересно, но многословно и не встроено в язык. Это скорее всего нельзя использовать в определении функции, например. На уровне языка он мееееееедленно проникает в C#, но все еще в сильно ограниченном виде: https://docs.microsoft.com/en-us/dotnet/csharp/pattern-matching
PJ>Твой опыт по ощупыванию жопы слона и глубокие выводы о его привычках. PJ>А мартышка попробовала с полдюжины очков. Числа сами по себе не всегда впечатляют. PJ>Если на всех на них писать как на фортране, то ничего лучше фортрана и не найти никогда. Функциональность это про композицию и типы, в основном. А тебе не хватает только паттерн матчинга. Вот такой твой опыт. Ну усмехайся, чё.
Во-во. Именно такие люди с горящими глазами в огромном количестве присутствуют на конференциях по ФП.
Здравствуйте, Mamut, Вы писали:
PJ>>Твой опыт по ощупыванию жопы слона и глубокие выводы о его привычках. PJ>>А мартышка попробовала с полдюжины очков. Числа сами по себе не всегда впечатляют. PJ>>Если на всех на них писать как на фортране, то ничего лучше фортрана и не найти никогда. Функциональность это про композицию и типы, в основном. А тебе не хватает только паттерн матчинга. Вот такой твой опыт. Ну усмехайся, чё.
M>Во-во. Именно такие люди с горящими глазами в огромном количестве присутствуют на конференциях по ФП.
И только ты туда ходишь рассказать им какие они дебилы?!
PJ>>>Твой опыт по ощупыванию жопы слона и глубокие выводы о его привычках. PJ>>>А мартышка попробовала с полдюжины очков. Числа сами по себе не всегда впечатляют. PJ>И только ты туда ходишь рассказать им какие они дебилы?!
Если люди общаются только в таком стиле, что еще остается рассказывать?
Здравствуйте, Mamut, Вы писали:
M>Интересно, но многословно...
Оставлю здесь
[Test]
public void ConstantFoldingTest()
{
Expression<Func<int,int>> f = i => i * 0 + 0 + i + 10 * (i * 0 + 2);
var f1 = f.TransformEx(ex => ex switch
{
Multiply(Constant(0) e, _) => e, // 0 * e => 0
Multiply(_, Constant(0) e) => e, // e * 0 => 0
Multiply(Constant(1), var e) => e, // 1 * e => e
Multiply(var e, Constant(1)) => e, // e * 1 => e
Divide (Constant(0) e, _) => e, // 0 / e => 0
Divide (var e, Constant(1)) => e, // e / 1 => e
Add (Constant(0), var e) => e, // 0 + e => e
Add (var e, Constant(0)) => e, // e + 0 => e
Subtract(Constant(0), var e) => Negate(e), // 0 - e => -e
Subtract(var e, Constant(0)) => e, // e - 0 => e
Multiply(Constant(int x), Constant(int y)) => Constant(x * y), // x * y => e
Divide (Constant(int x), Constant(int y)) => Constant(x / y), // x / y => e
Add (Constant(int x), Constant(int y)) => Constant(x + y), // x + y => e
Subtract(Constant(int x), Constant(int y)) => Constant(x - y), // x - y => e
_ => ex
});
Assert.IsTrue(f1.EqualsTo(i => i + 20));
}
Что здесь лишнее, что можно было бы убрать?
Если нам не помогут, то мы тоже никого не пощадим.
M>>Интересно, но многословно и не встроено в язык. IT>Почему не встроено? Это C# 8 preview. Вон даже appveyor ещё фэйлится по причине отсутствия у них там последней версии.
А. Мне показалось, что это им енно твоя библиотека реализует паттерн матчинг в виде надстройки. Про то, что в C# появляется я написал
На уровне языка он мееееееедленно проникает в C#, но все еще в сильно ограниченном виде
Я подумал, что это твоя библиотека для реализации паттерн матчинга, и что паттерн матчинг реализуется обертками/вызовами функций. Поэтому показалось многословно.
А в реальности ты используешь встроенные в язык паттерн матчинг для по AST функции.
Здравствуйте, Mamut, Вы писали:
PJ>>>>Твой опыт по ощупыванию жопы слона и глубокие выводы о его привычках. PJ>>>>А мартышка попробовала с полдюжины очков. Числа сами по себе не всегда впечатляют. PJ>>И только ты туда ходишь рассказать им какие они дебилы?!
M>Если люди общаются только в таком стиле, что еще остается рассказывать?
Ну да, я за вами три дня скакала, чтобы сказать как вы мне безразличны.
В каком таком? Это ты, весь в белом, на гора выдаешь тайное знание, о том, что все тлен и пустое, реальных проектов нет, всем можно расходиться.
Здравствуйте, Mamut, Вы писали:
PJ>>Ну да, я за вами три дня скакала, чтобы сказать как вы мне безразличны.
M>Пишет мне человек, который уже вторые сутки из кожи лезет вон, чтобы попытаться меня оскорбить.
Вот это сейчас было смешно. Желающий оскорбиться ищет повод. Неужели сомнение в абсолютности твоего печального опыта с ФП повергло тебя в такой шок?
Здравствуйте, Poopy Joe, Вы писали:
M>>Пишет мне человек, который уже вторые сутки из кожи лезет вон, чтобы попытаться меня оскорбить.
PJ>Вот это сейчас было смешно. Желающий оскорбиться ищет повод. Неужели сомнение в абсолютности твоего печального опыта с ФП повергло тебя в такой шок?
Лет десять назад Мамут топил за ФП очень аргументировано. Для сравнения, в этом треде из тебя в основном эмоции лезут, конструктива около нуля.
Здравствуйте, Ikemefula, Вы писали:
I>Лет десять назад Мамут топил за ФП очень аргументировано. Для сравнения, в этом треде из тебя в основном эмоции лезут, конструктива около нуля.
"Топить" за что-то можно в разговоре с коллегами, когда их работа влияет на тебя. Можно объяснять желающим слушать. Топить в священных войнах, где никто не собирается менять точку зрения, немного слабоумно, на мой вкус и точно бесполезно. Весь конструктив уже 100500 раз изложен в различных статьях, смысла повторять которых нет.
Здравствуйте, Poopy Joe, Вы писали:
PJ>Меня просто убивают подобные споры от профессионалов. Ну, блин, откатитесь на 30-40 лет назад, и, внезапно, все те же разговоры о пользе OOP.
Ну так и результат такой же. ООП тащат уже больше по инерции, реальной его применимости, особенно тяжеловесных фич вроде полиморфизма и наследования не так уж и много.
Здравствуйте, omgOnoz, Вы писали:
O>Сначала я думал, что монады — это ругательство.
O>Потом я научился Scala-е, а уже после узнал, что я использую монады и это не ругательство
Как говаривал классик, "а я и не знал, что всю жизнь ругаюсь монадами"