Hog
Ну как бы много раз уже говорили: "это разные кэмпы". F# это совсем не улучшенное ООП из C#, тут нужно по др думать. А по фичам C# и так догоняет F#
Ооп кстати в ф# мне больше нравится. Особенно как в жаве - имплементация интерфейса по месту. Прям руки чешутся куда-нить воткнуть.
ect"==typeof module.exp
Ух, что может быть интереснее, чем посравнивать языки. :)
Нидерландский лучше немецкого! :) (Один знаю второй нет)
gsomix
Мне кажется, что выбор конкретных языка и технологии — это выбор социально-психологический, а не инженерно-технический.
gsomix
И объективно обсуждать тут особо нечего.
A64m
Ну как бы много раз уже говорили: "это разные кэмпы". F# это совсем не улучшенное ООП из C#, тут нужно по др думать. А по фичам C# и так догоняет F#
ну, в f# нету современных средств организации кода вроде параметризованных модулей и тайпклассов, только сишарповый оопе, так что да, это сишарп с человеческим лицом
Hog
И объективно обсуждать тут особо нечего.
Это как с машинами :) почему такое разнообразие? Был бы какой-нить форд т-34 и всё:)
Igor
ну, в f# нету современных средств организации кода вроде параметризованных модулей и тайпклассов, только сишарповый оопе, так что да, это сишарп с человеческим лицом
> параметризованных модулей и тайпклассов Это факт (как и hkt). На сколько это нужно что бы написать веб сервис, вопрос открытый... Тайп-класссы в каком-то виде должны завести, наверное ближе к C# 9.0 (тк в него планируют что-то похоже).
A64m
А расскажите что такое тайпклассы? Словно мне 5 лет
когда компилятор подставляет в неявный параметр функции рекорд с функциями, подходящий по типу
ect"==typeof module.exp
Тоесть типа как duck typing только для функций?
A64m
нет
Igor
когда компилятор подставляет в неявный параметр функции рекорд с функциями, подходящий по типу
А я тут кстати недавно узнал, что в Haskell нельзя в одном модуле у двух рекордов сделать поля с одинаковыми названиями. А вот в F# можно 😎
A64m
"типа как дак тайпинг" это структурная типизация, когда какой-то существующий рекорд с функциями можно подставить в параметр, который способен его принять
A64m
тайпклассы, это когда какой набор функций привязать к какому типу надо явно декларировать
Hog
Это как пофиг какой на самом деле тип, но если у него есть определённый набор свойств, то можно впендюрить.
A64m
DuplicateRecordFields
Hog
Звучит как эксепшон!
Igor
DuplicateRecordFields
А еще это & Что нельзя было сделать как у людей через |> ?
A64m
два символа для конвейерного комбинатора - это слишком много мусора же
Hog
А казачок-то - засланый!
Igor
ну фиг знает, один или два, а зато смысл выражает (а еще есть красивая лигатура)
Igor
https://i.gyazo.com/c036910947e8515aa424f872698899b7.png Ну красота же
A64m
нет, конечно
Hog
Beauty is in the eye of the beholder.
Igor
Да он просто завидует (у них там сплошные . и $ )
Igor
Hog
нет, конечно
Это всё субъективно, но мне тоже пайпы нравятся!
Hog
|>(+)<|
Ayrat
|>(+)<|
Нормалин
A64m
ну, приходится любить |>, ведь в другую сторону они плохо работают из-за вывода типов, а >> плохо работает из-за велью рестрикшона точка занята синтаксисом это в хачкеле можно выбирать как писать, в эфшарпе особо не развернешься
Igor
Это всё субъективно, но мне тоже пайпы нравятся!
Да всем нравятся. Даже JS-ры C#-ты хотят их себе затащить (пропозалы пишут), а точки и долары никому не нужные, потому что они не стильные 🙅
Hog
Ща проверил :) у нас можно использовать zero width space в идентификаторах!
Hog
Это ж поле непаханое для обфускации!
Hog
Открываешь код :) а там все биндинги к х, y и z :))))
Андрей
Нидерландский лучше немецкого! :) (Один знаю второй нет)
Нидерландский для немцев звучит весело, что-то вроде белорусского, или как бобруйский диалект
ect"==typeof module.exp
Нидерландский для немцев звучит весело, что-то вроде белорусского, или как бобруйский диалект
немецкий для нидерландцев звучит словно польский для русских, или там португальский для испанцев.
ect"==typeof module.exp
Андрей
А расскажите что такое тайпклассы? Словно мне 5 лет
Если ходит как утка, выглядит как утка 🦆 то пользуем как утку и всё. Короче утконос - норм
ect"==typeof module.exp
Если ходит как утка, выглядит как утка 🦆 то пользуем как утку и всё. Короче утконос - норм
то-есть типа если бы в f# оно было то можно было бы у всех коллекций (list, seq, array) отказаться от префикса и сразу писать map/filter/... ?
Hog
Hog
а? как вам такой фарш?
ect"==typeof module.exp
а? как вам такой фарш?
это специальный F# для JVM?
Hog
это специальный F# для JVM?
не-а :) я ж пару сообщений назад написал, что это :)
ect"==typeof module.exp
fsi принимает юникод?!
Hog
второй "х" он на самом деле "x\0x200B"
ect"==typeof module.exp
не знал что в переменных разрешены не латинские символы
ect"==typeof module.exp
окей, теперь давай туда засунь right-to-left mark
ect"==typeof module.exp
U+200F
Андрей
второй "х" он на самом деле "x\0x200B"
раздолье для забавы над коллегами
Hog
окей, теперь давай туда засунь right-to-left mark
визуально результат идентичен. но набирать труднее из-за прыгающего курсора...
Hog
Нормалин
ифончик не те бэктики ставит :(
Vladislav
Это ж поле непаханое для обфускации!
Обфускацию компилятор своими оптимизациями делает)
Hog
Луна-луна! Цветы-цветы...
Romɑn
gsomix
Да.
Hog
https://twitter.com/tomaspetricek/status/1065728367251660801?s=12
gsomix
Ага.
gsomix
У thoughtworks очень модный радар.
gsomix
Там и SAFE, и Ktor.
Ayrat
А это он о чём? https://twitter.com/tomaspetricek/status/1062142300199874560
Ayrat
ааа, IAsynEnumerables
Ayrat
допёрло, да
Hog
AsyncSeq :)
Ayrat
дадада
Ayrat
но надо сказать я какие-то асинксеки и для C# видел
Ayrat
там же не рокет сайнс их сделать
Ayrat
в нугетах каких-то