@Fsharp_chat

Страница 455 из 772
Friedrich
14.01.2018
05:08:04
Ага, действительно полетело) Подскажи пожалуйста, дело в том что iter возвращает unit, который является аналогом Null в других языках, а map возвращает обработанный массив, да?
Причину ты понял правильно. Только вот поправка: unit является не аналогом null (null у нас в F# тоже есть, и он значит то же самое, что в C#). unit скорее является аналогом void. В некотором роде.

n06rn
14.01.2018
05:08:37
Да, верно.
и надо чтобы несколько ветвей возвращали значения одного типа?

Friedrich
14.01.2018
05:09:37
и надо чтобы несколько ветвей возвращали значения одного типа?
Да, тоже верно. F# является expression-based языком, то есть всё выражение match являются полноценным выражением, возвращающим результат. Отсюда требование, чтобы все ветки возвращали одинаковый тип. На случай, если ты результат захочешь положить в переменную.

Google
Friedrich
14.01.2018
05:10:05
Если ты хочешь сделать в разных подвыражениях разные вещи, а возвращаемый результат тебе неважен, иногда это правильно решается с помощью функции ignore.

Friedrich
14.01.2018
05:13:52
а где я должен ignore написать?
Ну вот в твоём примере проблема бы решилась так: match gazp.Headers with | Some i -> i |> Array.map (fun x -> printfn "head %A"x) |> ignore // !!! | None -> printf "NONE!!!"

n06rn
14.01.2018
05:14:15
ага, понял.

спасибо!)

Friedrich
14.01.2018
05:14:31
Но здесь правильнее использовать Array.iter, с ignore это лишь оторванный от реальности пример.

Pavel
14.01.2018
05:18:53
или | Some i -> for x in i do printfn "head %A" x

Friedrich
14.01.2018
05:19:07
Тоже вариант, да.

Pavel
14.01.2018
05:36:28
да и вообще :)

Array.iter <| printfn "head %A" |> Option.iter <| gazp.Headers

Klei
14.01.2018
05:49:20
Тогда уж так: printfn "head %A" |> Array.iter |> Option.iter <| gazp.Headers Не надо перебарщивать с <|.

Aleksey
14.01.2018
05:51:57
Не надо в одном выражении смешивать пайпы разной направленности

Google
Aleksey
14.01.2018
05:52:29
А <| сам по себе - норм

Pavel
14.01.2018
05:59:28
самое читаемое вообще со скобками

Klei
14.01.2018
06:01:22
<| повышает читаемость вообщето
Когда скраю да, но начинать с обратного пайпа смысла не вижу. Как минимум я его не ожидаю увидеть, соответственно при диагональном прочтении его можно не заметить.

Pavel
14.01.2018
06:01:23
Option.iter (Array.iter <| printfn "head %A") s

Evgeniy
14.01.2018
07:55:43
@VVatashi @techiedesu Привет.

Vlad
14.01.2018
07:56:09
доброго времени суток!

Evgeniy
14.01.2018
10:32:20
https://twitter.com/sergey_tihon/status/952257295697825793

A64m
14.01.2018
10:37:35
Pavel
14.01.2018
10:37:49
лучше б Сайм трейты запилил

Сергей
14.01.2018
10:38:25
по такой логике и в окамле с хаскелем дженериков нет, стирание типов же
Ну я говорю про джаву и жвм чё там хз дело не имел

Evgeniy
14.01.2018
10:57:49
Artemy
14.01.2018
10:58:10
)

Pavel
14.01.2018
11:04:25
Опять...
а шо? эт не я придумал. это он сам наобещал а потом спрыгнул :)

Pavel
14.01.2018
11:05:31
лет 8 назад как еще

Evgeniy
14.01.2018
11:05:47
Сейчас есть длинное обсуждение в fslang-suggestions, один прототип трейтов со статьей и RFC для улучшения SRTP.

Pavel
14.01.2018
11:07:02
не веришь чтоли?

http://fsharp.org/specs/language-spec/2.0/FSharpSpec-2.0-April-2012.pdf

Google
Pavel
14.01.2018
11:08:26
A.1.4.3 Keywords

reserved - ident - keyword : one of atomic break checked component const constraint constructor continue eager fixed fori functor include measure method mixin object parallel params process protected pure recursive sealed tailcall trait virtual volatile

ну и где все это?

Evgeniy
14.01.2018
11:09:26
Ух ты, это теперь обещанием называется. Я тебя понял. ;)

Pavel
14.01.2018
11:11:08
проблема в том что с каждой новой версией c# какихто уникальных преимуществ у f# остается все меньше

Evgeniy
14.01.2018
11:11:46
Сейчас, кстати, концепция поменялась -- новые фичи стараются вносить с минимальными изменениями в синтаксисе. Поэтому для трейтов скорее всего будут атрибуты.

проблема в том что с каждой новой версией c# какихто уникальных преимуществ у f# остается все меньше
Дизайн языков программирования -- это не про "игру мускулами", у кого фич больше.

Evgeniy
14.01.2018
11:14:48
Ладно. С завидной периодичностью здесь появляется нытье про трейты.

И как обычно ни к чему не приводит.

Pavel
14.01.2018
11:15:16
естессно ни приводит

посыл даже не конкретно про трейты, а про то что развитие еще сильнее остановится. т.ч. это скорее отрицательная новость

Pavel
14.01.2018
11:21:55
что почему? почему отрицательная или почему остановится?

Evgeniy
14.01.2018
11:22:05
Почему остановится?

k_cieslak Yeah, talked with Don about it some time ago. He seemed excited As in - it actually means more time on F#, no unrelated research stuff

Pavel
14.01.2018
11:23:34
дык исторически так идет. в каждой версией в язык вносится все меньше изменений. а если Сайм еще и уйдет с замарином разбираться...

Google
Pavel
14.01.2018
11:24:35
Домыслы.
какие домысла. историю изменений в языке подыми

Evgeniy
14.01.2018
11:24:52
Pavel
14.01.2018
11:28:02
k_cieslak Yeah, talked with Don about it some time ago. He seemed excited As in - it actually means more time on F#, no unrelated research stuff
а замарин это типа такой весь ф-релатед или он им не будет заниматься? :)

Evgeniy
14.01.2018
11:28:54
Будет заниматься языком и его поддержкой в Xamarin.

Pavel
14.01.2018
11:30:01
я вот про поддержку ф в замарине слабо понимаю. он там уже есть и работает, причем довольно неплохо. че там поддерживать?

Evgeniy
14.01.2018
11:33:09
Тулинг и библиотеки. Например, Сайм говорил, что его очень интересует elmish для xamarin.

Летучая
14.01.2018
12:17:24
я вот про поддержку ф в замарине слабо понимаю. он там уже есть и работает, причем довольно неплохо. че там поддерживать?
Привет! Но ведь в Xamarin только MVVM, а как же unidirection и прочие функциональные архитектуры? Функционально программировать приятнее же, а в XAML-платформах кроме MVVM ничего толкового и нет пока.

Вдруг это шаг Майкрософта к чему-то большому и новому навстречу?

Vladimir
14.01.2018
17:13:10
Интересную штуку нашел, пишу use _ = smth() внутри task CE, все работает пишу то же самое внутри обычной функции пишет FS0852 'use' bindings must be of the form 'use <var> = <expr>' а если написать use x = smth(), то ворнинг что x не используется, поменяйте на _ а если написать use _x = smth(), то уже и ворнинга нет

Igor
14.01.2018
19:15:37
Привет! Но ведь в Xamarin только MVVM, а как же unidirection и прочие функциональные архитектуры? Функционально программировать приятнее же, а в XAML-платформах кроме MVVM ничего толкового и нет пока.
У меня кстати есть безумная идея “написать TEA - React для Xamarin” Суть такая, на Xamarin .NET часте: - Пользователь в методе view возвращаем декларативное описание UI (как в Fable React) - Что бы было меньше GC - можно юзать пулинг (переиспользовать одни и те же объекты под капотом) - Дальше “умный алгоритм” вычисляет минимальное изменение UI между двумя “кадрами” - По протоколу (к примеру protobuf) мы передаем это diff в платформенную часть На Android/iOS (прям нативно на java/obj-c написаный код) - Получает этот diff и изменяет UI По идее это будет даже быстрее Xamarin Native и меньше потреблять памяти. Что-то подобное пилят в JetBrains https://github.com/jetbrains/noria-kt Это проект Noria - универсальный “реакт”, который может работать поверх DOM/Cocoa/Swing и тд

Хотя если noria выстрелит, то можно будет просто очередной бекэн написать на F# или портануть (там уже есть на kotlin/clojure)

Roman
15.01.2018
01:13:59
Привет!!

Alexander
15.01.2018
01:25:23
Привет!

Evgeniy
15.01.2018
04:56:56
https://twitter.com/brandewinder/status/952655944114057217

Vladimir
15.01.2018
05:23:28
https://github.com/morelinq/MoreLINQ

Evgeniy
15.01.2018
07:02:54
https://github.com/wallymathieu/FSharpPlus.Validations

Привет.

Google
Raf
15.01.2018
08:41:09
hi

я не бот)

Evgeniy
15.01.2018
08:42:51
я не бот)
Зато я — бот!

Raf
15.01.2018
08:43:18
ок

Григорий
15.01.2018
14:28:40
а для F# есть средства по проектированию программ не в MV* (MVVM и т.д.) направлении?

Igor
15.01.2018
15:01:47
Каких программ? Имется ввиду десктоп/кросплатформа/xamarin?

Григорий
15.01.2018
15:16:45
Evgeniy
15.01.2018
16:23:22
Григорий
15.01.2018
16:34:08
Mikhail
15.01.2018
20:49:07
Привет всем! Подскажите, а есть какой-нибудь чатик вроде "F# jobs" ну или где можно найти проекты так или иначе связанные с F#?

Artemy
15.01.2018
20:51:10
Вакансии или именно проекты (опенсорсные, например)?

Mikhail
15.01.2018
20:55:42
Вакансии или именно проекты (опенсорсные, например)?
Желательно вакансии. Но опенсорс тоже интересен

А если просто проекты за которые платят - идеально!

Artemy
15.01.2018
20:58:05
Ну с ванаксиями в СНГ, как я понял, есть проблемы

Из чатиков по F#-вакансиям знаю только канал в Слэке F# Software Foundation. Но там вакансии по миру.

Опенсорсные проекты в основном все на ГитХабе. Можно самому по тегу fsharp поискать. Ну и есть вот такой, так сказать, реестр: https://github.com/fsprojects/awesome-fsharp

Страница 455 из 772