Vasiliy
все норм, еще есть минимум 73 процентов цп, которые можно есть :D
Григорий
а какие фичи F# ожидаете в новых версиях?
Vasiliy
https://pastebin.com/SuxUhJPE типа такого
И тут я понял, что не правильно вообще подошел к моделированию моделей. Надо все сжечь и начать еще раз. Но зато узнал про систему типов еще немного нового)
Григорий
я узнал, что хотят впилить новый синтаксис для линз
Vasiliy
кстати, что за линзы?
Григорий
кстати, что за линзы?
https://habr.com/post/190442/
Vasiliy
благодарю.
Григорий
я пока не могу внятно объяснить, что такое линзы)), но это вроде как способ, с помощью которого можно изменять поля у вложенных record'ов, получая новый record >_<
Ayrat
а какие фичи F# ожидаете в новых версиях?
Есть репка с RFC, там можно посмотреть все реализованные но не релизнутые
Ayrat
Сейчас не смогу скинуть ссылку, может кто другой скинет
Григорий
я пока не шарю )) если коротко))
Doge
я пока не шарю )) если коротко))
Может тогда они тебе и не нужны? Или у тебя там вложенность на самом деле в десяток уровней?
Григорий
@omgszer оно? https://github.com/fsharp/fslang-design
Vladislav
а какие фичи F# ожидаете в новых версиях?
1) обновление рекордов не через жопу 2) анонимные рекорды 3) нужные value option 4) type slicing in quotations 5) type providers parametrised by types 6) struct/ref tuple parity 7) task CE 8) let! and! 9) SRTP inline interfaces
Vladislav
10) чтобы сишарп просрался с extension everything и мы тайпклассы получили
Vasiliy
И что из этого одобрено?
Vladislav
Все
Vladislav
Насчёт туплов не уверен
Vasiliy
Что за value option?
https://github.com/fsharp/fslang-design/blob/master/FSharp.Core-4.6.0/FS-1065-valueoption-parity.md
Vasiliy
наверное это?
Klei
Не знал, что у ValueOption нет соответсвующего модуля.
Ayrat
Не знал, что у ValueOption нет соответсвующего модуля.
Да это мёртвому припарка. Дефолтные аргументы заворачиваются в реф опшн. Всё апи, тот же Seq.tryHead возвращает реф опшн.
Romɑn
Memes
Vladislav
Не знал, что у ValueOption нет соответсвующего модуля.
Оно есть но нигде не используется
Vladislav
Стракт туплы туда же
Vladislav
Неудобно использовать
Vladislav
А ещё 11) там короче есть пропозал типа Simplify name resolution for record fields
Vladislav
{ Name = x.Name } = { x.Name }
Vladislav
Как в сишорпе
Vladislav
https://news.ycombinator.com/item?id=18874796
Vasiliy
https://news.ycombinator.com/item?id=18874796
воу, вот это стена текста.
Vladislav
Фшарпу 16-17 лет, первые реализации в 2001-2002 на окамле были
Крылатый
Vladislav
At the time, all public software by MSR had an awkward legal/commercial status: publication of software was primarily to support a research/publication agenda. Despite a budget nearing $1B, the organization was not at that stage permitted to make and release commercial products.
Vladislav
Лол
Vladislav
Мс ресерч
Vladislav
At EPFL in 2007, the author noticed that Odersky was experimenting with a react { ... } construct for message processing in Scala, and realized that some kind of primitive construct to deal with asynchronous programming was going to be needed in F#. C# had added “iterators” in C# 2.0 (again initiated by MSR). This featured an implicit inversion of control-flow which was of interest in the context of async programming.
Vladislav
Хех
Vladislav
Асинки из скалы то
Vladislav
TypeScript was directly influenced by F#: one of the originators of TypeScript was Luke Hoban, who began TypeScript (then called Strada) immediately after working on F# 2.0. Recently he noted the influence of F# on early parts of the TypeScript design.101 The extent of this influence is a matter of counter-factual debate, but it is the author’s opinion that TypeScript would not have appeared from a Microsoft team in anything close to its current form without the influence of F#.
Vasiliy
а сколько лет скале?
Vasiliy
мне казалось она не так давно живет.
Vladislav
С 2000~
Vladislav
@DogeShibu This tension, where F# added one version of a feature, only for C# to add a modified version of a similar feature later, was repeated even with tuples: F# had boxed tuples from the outset in 2002, and C# added unboxed tuples in 2017. In 2017 the F# design team had to adjust F# to allow both boxed and unboxed tuples. The introduction of C# expression quotations in 2007 was similar: F# had quotations Expr<T>, but C#’s expression quotation added LINQ’s Expression<T>, widely used by .NET libraries. C# expressions quotations are strictly more limited than F# quotations (covering only C# expressions, and not statement forms), and more complicated, but they are effectively a .NET standard. To the author’s knowledge no other language dances quite so closely with a “bigger” language. It is important for the long-term integrity of the F# design that these adjustments are done with extreme care. As a language design, F# has many opportunities to evolve, and over 200 active language suggestions are recorded on the “F# Language Suggestions” site that forms part of the official FSSF language design process.106 Two of the most popular suggestions are type classes and higher kind type parameterization. However, in both cases the author has indicated an unwillingness to add this feature to F# without also adding a matching feature to C#, partly to avoid a recurring pattern of multiple semi-compatible versions of similar features. Про то почему tc и hktp нет)
Doge
@DogeShibu This tension, where F# added one version of a feature, only for C# to add a modified version of a similar feature later, was repeated even with tuples: F# had boxed tuples from the outset in 2002, and C# added unboxed tuples in 2017. In 2017 the F# design team had to adjust F# to allow both boxed and unboxed tuples. The introduction of C# expression quotations in 2007 was similar: F# had quotations Expr<T>, but C#’s expression quotation added LINQ’s Expression<T>, widely used by .NET libraries. C# expressions quotations are strictly more limited than F# quotations (covering only C# expressions, and not statement forms), and more complicated, but they are effectively a .NET standard. To the author’s knowledge no other language dances quite so closely with a “bigger” language. It is important for the long-term integrity of the F# design that these adjustments are done with extreme care. As a language design, F# has many opportunities to evolve, and over 200 active language suggestions are recorded on the “F# Language Suggestions” site that forms part of the official FSSF language design process.106 Two of the most popular suggestions are type classes and higher kind type parameterization. However, in both cases the author has indicated an unwillingness to add this feature to F# without also adding a matching feature to C#, partly to avoid a recurring pattern of multiple semi-compatible versions of similar features. Про то почему tc и hktp нет)
Ну так они долго ждать могут.
Doge
Поэтому я и считаю, что разумнее было просто отколоться от материнского языка и развиваться в своем темпе и своем стиле. Та же скала на джаву оглядывается очень редко.
Pavel
@DogeShibu This tension, where F# added one version of a feature, only for C# to add a modified version of a similar feature later, was repeated even with tuples: F# had boxed tuples from the outset in 2002, and C# added unboxed tuples in 2017. In 2017 the F# design team had to adjust F# to allow both boxed and unboxed tuples. The introduction of C# expression quotations in 2007 was similar: F# had quotations Expr<T>, but C#’s expression quotation added LINQ’s Expression<T>, widely used by .NET libraries. C# expressions quotations are strictly more limited than F# quotations (covering only C# expressions, and not statement forms), and more complicated, but they are effectively a .NET standard. To the author’s knowledge no other language dances quite so closely with a “bigger” language. It is important for the long-term integrity of the F# design that these adjustments are done with extreme care. As a language design, F# has many opportunities to evolve, and over 200 active language suggestions are recorded on the “F# Language Suggestions” site that forms part of the official FSSF language design process.106 Two of the most popular suggestions are type classes and higher kind type parameterization. However, in both cases the author has indicated an unwillingness to add this feature to F# without also adding a matching feature to C#, partly to avoid a recurring pattern of multiple semi-compatible versions of similar features. Про то почему tc и hktp нет)
их нет только потому что сайму ломы их делать. отсутствие du в цешарпе его как-то не останавливало
Doge
ммм но это все должно же поддерживать clr как я понимаю? И есть будут костыли в имплементации, то какой смысл?
Ну можно всегда начать с того, чтобы делать свою имплементацию, потом, если это добавляют в CLR - переходить. Но именно от CLR нужно только одно - поддержка HKT, да и то это можно обойти стиранием типов или хаками.
Doge
У Одерски где-то валялась статья про то, как он в Dotty HKT делал, там можно разные варианты посмотреть.
Pavel
ммм но это все должно же поддерживать clr как я понимаю? И есть будут костыли в имплементации, то какой смысл?
зачем? ни один компилятор не интересует поддерживает ли конечный цпу его фичи. все тупо костылят в целевую платформу и всё работает.
Doge
Ну тут варианты энкодинга, правда, достаточно специфичные для скалы и её системы типов.
Doge
Но чтение всё равно интересное
Doge
А что такое "let! and!"?
Синтаксис в computational expressions для аппликативных функторов
Dr. Friedrich
Вроде туда скалошные лямбды не пролезали, или что-то в этом роде
Dr. Friedrich
Надо было включать какую-то экспериментальную джигурду, чтобы норм работать со стримами
Dr. Friedrich
И очень долго эта басня тянулась
Doge
Вроде туда скалошные лямбды не пролезали, или что-то в этом роде
Ну потому что скала 2.11 не поддерживала 8 джаву.
Doge
Её раньше сделали, чем восьмую джаву
Dr. Friedrich
Ну потому что скала 2.11 не поддерживала 8 джаву.
Ну дак понятное дело. Но вот они, проблемы интеропа.
Dr. Friedrich
У Котлина сейчас какие-то проблемы с дефолтовыми интерфейсами в жаве. Опять же, из-за совместимости с семёркой.
Doge
Ну надобности использовать джавовские стримы у меня ни разу не возникала. Ни на 2.11, ни на 2.12
Doge
С трудом представляю, как ты программируешь 🤷‍♂️
В скале же есть свои коллекции, в которых есть все необходимое
Dr. Friedrich
У меня вот везде жава-либы, и приходится по полной эксплуатировать все слои совместимости, все вот эти дикие штуки для преобразования жавошных итераторов в скалошные и всю вот эту пакость
Dr. Friedrich
К счастью, ещё с дефолт-интерфейсами не столкнулся, и на том спасибо :)