
Friedrich
14.01.2018
05:08:04

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.

n06rn
14.01.2018
05:13:09

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 это лишь оторванный от реальности пример.

n06rn
14.01.2018
05:15:13

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
Опять...
а шо? эт не я придумал. это он сам наобещал а потом спрыгнул :)

Evgeniy
14.01.2018
11:04:50

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
Сейчас, кстати, концепция поменялась -- новые фичи стараются вносить с минимальными изменениями в синтаксисе. Поэтому для трейтов скорее всего будут атрибуты.

Pavel
14.01.2018
11:12:39

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

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

Evgeniy
14.01.2018
11:21:17

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

Fill
14.01.2018
11:23:28

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

Evgeniy
14.01.2018
11:23:48

Google

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

Evgeniy
14.01.2018
11:24:52

Pavel
14.01.2018
11:28:02

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
Вдруг это шаг Майкрософта к чему-то большому и новому навстречу?

Pavel
14.01.2018
12:24:05
а так что накостылишь то и будет
а формы все одно использовать невозможно

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
Хотя если 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