Hog
77 лет - говорит :)
Ayrat
Да, похоже на то. Это где-то пенсионный возраст уже вот-вот!
Hog
на "исходнике", кстати, накинул мне годков
Hog
наверное надо поберечь себя :)))))
Doge
привет Y
Вопрос сколько из этих невыразимых вещей актуальны на практике
Doge
короче, он в плохом смысле ебанутый
Ему просто надо семинары продавать. Во и приходится вбрасывать, чтобы популярность держать. То говорит, что в скале ОО не нужно, а потом пишет ЗИО с диким использованием сабтайпинга в ОО стиле внутри
Aleksandr
Конкретно про Y не знаю что и сказать
Aleksandr
Слабо представляю себе язык, где есть higher order functions, но нет рекурсии
Doge
Я понимаю что он евангелист своего бизнеса, но звучит слишком супримативно
Ну его метания подобного толка иначе сложно объяснить
Ayrat
Слабо представляю себе язык, где есть higher order functions, но нет рекурсии
Y как раз и постулирует что рекурсия возможна везде, где есть место для лямбд (обычных)
Aleksandr
Верно, но речь зашла о применимости на практике
Doge
Слабо представляю себе язык, где есть higher order functions, но нет рекурсии
Тут вопрос, что слабо представляется современный практичный язык, в котором есть на практике нужда в Y и подобных комбинаторах
Doge
Если кто такой знает, то говорите, было бы интересно взглянуть
Диёр
у меня дочь вот этот вот sjw. капец как им в школе промыли
Всего одну sjw знаю ирл. Любила всем всякую хуйню загонять насчёт толерантности и потом жаловаться что у неё друзей нет. ССЗБ в действии.
Ayrat
Не, я таких не знаю. Все костылят сей момент компилятором чтобы не ебаться с невыразимостью рекурсии в строгих системах
Hog
Пошёл погулять в обед. А тут шарп сломали
Hog
Ilya
Точно не F#?
Ilya
https://www.jellybtn.com/board-kings/
О, прикольно. Я в ней играю иногда. Запросов действительно дофига должно быть. Каждый ход -- это бросок кубика, ход занимает пару секунд.
Dr. Friedrich
ООП в Scala очень классно сделано. А вот добрая половина функциональных фишечек внедряется через боль
Dr. Friedrich
for { _ <- f1 _ <- f2 _ <- f3 }
Ilya
До сих пор не понимаю, что это означает. Я счастливый человек.
Dr. Friedrich
Ну то есть вдумайтесь, родную функциональную монаду там люди используют, описывая эмуляцию императивного цикла for.
Dr. Friedrich
Там ещё какой-нибудь yield в конец надо воткнуть
Anonymous
дело в том что семантика языков слишком сложна
Anonymous
когда начинал изучать фш был озадачен что for с разной скоростью работал
Anonymous
это было около года назад,
Anonymous
for to и for in
Anonymous
так кажется
Dr. Friedrich
У нас есть for to? %)
Dr. Friedrich
Надо же, и правда есть.
Anonymous
ну тот который в обычный цикл комплится, а второй for использует yeild
Dr. Friedrich
Один это for, а второй foreach :)
Dr. Friedrich
Посаны грят, на массивах должно одинаково по перформансу работать.
Anonymous
Так вот в nemerle изучая стал делать через for, а мне на rsdn говорят используй foreach
Anonymous
ну т.е. на вид конструкция похожая но в немерле по возможности в простой цикл компилится
Dr. Friedrich
В сишарпе, как мы на днях выяснили, foreach по массиву компилируется в for.
Dr. Friedrich
По всему остальному — нет.
Anonymous
Real: 00:00:00.046, ЦП: 00:00:00.046, GC gen0: 0, gen1: 0, gen2: 0 - for i to arr.length -1 do sum() Real: 00:00:00.073, ЦП: 00:00:00.062, GC gen0: 0, gen1: 0, gen2: 0 - for i in arr do sum() на 1000_000 int[]
Anonymous
померял немерл foreach(вызывается вторым) стабильно на 1-5 мс быстрее for мерял stopwatch, в фш мерял #time-ом (запуск Microsoft (R) F# Interactive, версия 4.1)
Anonymous
Nemerle foreach vs for
Anonymous
F# for to vs for in
Андрей
A value class … … must have only a primary constructor with exactly one public, val parameter whose type is not a user-defined value class. (From Scala 2.11.0, the parameter may be non-public.)
Тут всё сложно. Настоящих Value на JVM нету, как и настоящих генериков. Обещают в одной из новых джав. А пока (уже давно) это просто хинт компайлеру, чтобы он, если у него есть настроение, «вырезал» боксинги. Это даже работает, но не всегда и без контроля программиста
Dr. Friedrich
А виртуальную машину кто будет прогревать?
Dr. Friedrich
Тем более вообще в fsx %)
Dr. Friedrich
Я не принимаю такие бенчмарки, короче.
Dr. Friedrich
(другой разговор, что ты можешь и не задаваться задачей чтобы мне их сдавать)
Anonymous
F# озадачен
Dr. Friedrich
F# озадачен
Братюнь, если хочешь норм померить, то возьми benchmarkdotnet.
Dr. Friedrich
Он тебе и дисперсию посчитает, и многомодальное распределение задетектит, всё как в лучших домах Европы.
Dr. Friedrich
И вот его натрави на немерле и на фшарп-проги
Dr. Friedrich
Хотя мб в твоём случае достаточно IL-код посмотреть
Anonymous
верю. но н-лет назад скорость была в разы меньше при обходе через for in
Vasily
верю. но н-лет назад скорость была в разы меньше при обходе через for in
n лет назад foreach был в разы медленнее, но это ещё во времена 1.1
Dr. Friedrich
n лет назад foreach был в разы медленнее, но это ещё во времена 1.1
Мне чота кажется, что у чувачка 2010 студия и следовательно нетфреймворк какой-нибудь примерно 4.0
Dr. Friedrich
Но мб это просто на новой студии скин такой, хз
Dr. Friedrich
Ну и, да, информации о рантайме действительно не хватает, тут уже без шуток. Немерле же, кажется, не умеет в неткор, да?
Dr. Friedrich
Значит, честно будет тестировать на .NET Framework 4.8.
Dr. Friedrich
Но основные современные перф оптимизации таки в неткоре делаются, на .NET 4.8 не так интересно делать замеры.
Anonymous
Ayrat
Ну только всё наоборот :)
Ну я и говорю что он больной человек
Dr. Friedrich
Ну ты же понимаешь, что на самом деле код выполняется под тем фреймворком, который установлен на машине, а не тем, под который ты компилируешься
Anonymous
Разве не ссылки на библиотеки не содержат номер версии?
Dr. Friedrich
Можно селф-контейнд паблиш сделать!!1
Для нетфреймворка нельзя.
Ayrat
Разве не ссылки на библиотеки не содержат номер версии?
Там все уедет в гак и через биндинг редиректы подключит чо угодно
Dr. Friedrich
Разве не ссылки на библиотеки не содержат номер версии?
Ну мы-то больше тут про рантайм замеры делаем, разве нет?
Dr. Friedrich
Маловероятно (хоть и возможно), что перф цикла for по массиву зависит от версии FSharp.Core.
Dr. Friedrich
Все рантаймы старше 4.0 просто обновляют один и тот же енжин
Dr. Friedrich
Поставил 4.8 на машину — и у тебя весь дотнет-код, кроме сборок под 2.0 и 3.5, просто начинает выполняться на 4.8.