@Fsharp_chat

Страница 650 из 772
Vasily
26.07.2018
14:41:32
Главное, не забывай return! loop писать

Roman
26.07.2018
14:41:45
ну причесывать я буду, когда получше разберусь и хоть как-то сделаю рабочий вариант. Концепция для меня новая пока что)

Vasily
26.07.2018
14:42:00
А то одно сообщение обработаешь и привет

Roman
26.07.2018
14:42:09
Главное, не забывай return! loop писать
ага) В туториалах везде есть

Google
Evgeniy
26.07.2018
15:25:29
Привет.

Anna
26.07.2018
17:27:19
アレクセイ
26.07.2018
17:27:40
Дайте ссылочку где он благословляет

Ayrat
26.07.2018
17:32:11
Дайте ссылочку где он благословляет
Ну чувство юмора-то надо иметь.

アレクセイ
26.07.2018
17:34:01
А, не втянулся ещё

Evgeniy
26.07.2018
18:11:35
Он еще ОО там благославляет.

Vagif
26.07.2018
18:35:22
Есть ли тут те, кто использует F# в работе и российский или нет этот работодатель
На норвежском телевидении (NRK) на фшарпе уже несколько проектов. Филипп Картер в связи с этим в свою презентацию включил слайд "F# powers NRK. Это преувеличение, конечно.

Ayrat
26.07.2018
18:37:54
Он еще ОО там благославляет.
я кстати не шутил про благославляет. Папа F# сделал F# ООП языком и поощряет использовать гибридный подход и не гнушаться мутабельных состояний.

アレクセイ
26.07.2018
18:43:15
Не ну иногда можно во имя скорости. Стэк там какой нить в аггрегейт засунуть. Энтерпрайз же.

Ayrat
26.07.2018
18:46:15
Не ну иногда можно во имя скорости. Стэк там какой нить в аггрегейт засунуть. Энтерпрайз же.
можно даже не только во имя скорости КОДА, а ещё во имя скорости разработки) Просто надо понимать где мутабельное состояние не протечёт в многопоточную среду и смело там его юзать

アレクセイ
26.07.2018
18:48:54
Насчёт «смело» я бы не согласился ) не только многопоточность может подпортить день с мутабельными состояниями

Google
Igor
26.07.2018
18:50:04
можно даже не только во имя скорости КОДА, а ещё во имя скорости разработки) Просто надо понимать где мутабельное состояние не протечёт в многопоточную среду и смело там его юзать
> смело там его юзать Ну такое и имхо главный плюс фп без стейта не про "многопоточность", а краткости и выразительности. И это важно, тк мало кто пишет действительно "многопоточный код" (и никому F# так не продаш).

Ayrat
26.07.2018
18:50:49
короче, хорошо что F# может и так, и так

Pavel
26.07.2018
18:56:53
короче, хорошо что F# может и так, и так
А ещё лучше, что подталкивает к иммутабельности, но не запрещает мутабельность

Evgeniy
26.07.2018
19:25:41
https://blogs.msdn.microsoft.com/dotnet/2018/07/26/announcing-f-4-5-preview/

Го тестировать?

Ayrat
26.07.2018
19:29:36
https://blogs.msdn.microsoft.com/dotnet/2018/07/26/announcing-f-4-5-preview/
всего 5 рфц въехало... https://github.com/fsharp/fslang-design/tree/master/FSharp-4.5

Vlad
26.07.2018
19:29:51
Го тестировать?
еще бы они анлистнули 4.5.0 который залит не как бета

Evgeniy
26.07.2018
19:34:58
Я жду 4.5, потому что после этого начнут работать над F#5.

А он должен быть неплох. :)

Pavel
26.07.2018
20:05:01
А он должен быть неплох. :)
4.5 тоже хорош. Чего стоит только наведение порядка с версиями

Friedrich
27.07.2018
06:41:12
https://github.com/fsharp/fslang-design/blob/master/FSharp-4.5/FS-1054-undent-list-args.md булин вот это огонь

Vagif
27.07.2018
06:47:05
Надеюсь, этот RFC примут. Так и не овладел полностью искусством табуляции в F#.

Vasily
27.07.2018
06:49:06
Легче, конечно, жить не станет

Friedrich
27.07.2018
06:51:47
Vagif
27.07.2018
07:54:59
Я искренне завидую людям, которые с первого раза правильно табулируют любой код на F#, но не удивлюсь, если завидовать некому.

A64m
27.07.2018
07:58:46
даже я пострадал от ошибок с отступами в эфшарпе, хотя до этого годы писал на хаскеле (с отступами, естественно) и это не помогло

Google
Vagif
27.07.2018
08:07:15
Вчера решил, что понял, но так до конца и не понял разницу между Fable.Websockets.Elmish и новой библиотекой Elmish.Bridge. В примерах для SAFE stack используется первая, в частности, в примере SAFE-Chat, который написал @olegzee. Теперь есть еще Elmish.Bridge, тоже на основе WebSockets. Мне объяснили, что "Fable.Remoting and Elmish.Bridge allow you to model declarative APIs without handling websocket specifics like the handshake clutter your API design." Сравнил примеры решений, Elmish.Bridge, судя по всему, прячет собственно socket протокол, там не нужно пользоваться Cmd.ofSocketMessage. Но, имхо, не так уж это портит код. Кто-нибудь пользовался обеими библиотеками, есть какие-нибудь предпочтения?

Vagif
27.07.2018
08:26:04
Да, и огромное тебе спасибо за SAFE-Chat. Пользовался кодом как учебником для своего первого Fable приложения.

Friedrich
27.07.2018
08:31:38
Пишешь какое-нибудь let x = \a b -> a + b А ему не нравится!

A64m
27.07.2018
08:32:50
да я и там и там привык, просто мне показалось примечательным что разницы достаточно чтоб в другом языке опять привыкать пришлось

Friedrich
27.07.2018
08:33:07
И приходится всегда табулировать это куда-нибудь подальше на рандомное количество символов.

Vagif
27.07.2018
08:40:54
А какой вариант вы предпочитаете? let getUser firstName lastName = { FirstName = firstName LastName = lastName } let getUser firstName lastName = { FirstName = firstName LastName = lastName }

Vagif
27.07.2018
08:42:31
Согласно guidelines, нужно выбирать второй, но при этом все поля records смещаются на 2 позиции относительно позиций табуляции

Меня это напрягает

Vagif
27.07.2018
08:43:52
Если выбрать табуляцию со смещением на 2, то все ок, но обычно же больше двух.

Friedrich
27.07.2018
08:43:59
Ну, теперь можно будет писать let foo = { bar = a baz = b } Правильно же?

Ayrat
27.07.2018
08:44:59


Vagif
27.07.2018
08:45:43
Получаются разные отступы для таких случаев: let getUser firstName lastName = { FirstName = firstName LastName = lastName } let getOtherUser firstName lastName = let user = { FirstName = firstName LastName = lastName } user

Google
Daniel
27.07.2018
08:46:28
Roman
27.07.2018
08:46:43
спасибо тебе за это расширение

Ayrat
27.07.2018
08:46:50


Friedrich
27.07.2018
08:46:51
но ведь и раньше можно было
А разве не было ворнинга?

Daniel
27.07.2018
08:47:10
А разве не было ворнинга?
нет, с самого начала так писал на F#

хотя, может, я забивал на ворнинг ?

просто рекомендуемый вариант имхо выглядит ужасно (

Alex
27.07.2018
08:49:24
Вопрос по dotnet 2.1.300

Vagif
27.07.2018
08:49:26
а что мешает написать let user = { Name = ... AnotherName = ... }
Я как-то привык открывающую { писать на той же строке, возможно, чтобы не смещать отступы потом.

Alex
27.07.2018
08:49:32
error FS3033: Поставщик типов сообщил об ошибке "ProviderImplementation.JsonProvider" в контексте предоставленного типа "FSharp.Data.JsonProvider,Sample=" {\"name\":\"11\"} "", элемент "Parse". Ошибка: Не удалось задать привязку типа "System.IO.StringReader" в сборке "System.Private.CoreLib, Version=4.0.0.0

Vagif
27.07.2018
08:50:08
Но, похоже, придется перестраиваться.

Ayrat
27.07.2018
08:51:32
кстати, кто ещё VS Code пользуется, там в превью добавили новый стиль окна "window.titleBarStyle": "custom", рекомендую попробовать. По дефолту там native стоит и на винде native говно

VS Code надо будет рестартануть для эффекта



Oleg
27.07.2018
09:06:59
Да, и огромное тебе спасибо за SAFE-Chat. Пользовался кодом как учебником для своего первого Fable приложения.
:) за некоторые вещи в этои проекте мне стыдновато. Например доменная модель пользователя и сессии и я в своем форке почти все переделал. До образца уровня SAFE_BookStore далеко. Очень не хватает критики

Alex
27.07.2018
09:22:03
Почему-то Ошибка: Не удалось задать привязку типа "System.IO.StringReader" в сборке "System.Private.CoreLib, Version=4.0.0.0 выдает, если dotnet run|build

msbuild нормально собирает

кто-нибудь знает почему?

Vagif
27.07.2018
09:23:09
:) за некоторые вещи в этои проекте мне стыдновато. Например доменная модель пользователя и сессии и я в своем форке почти все переделал. До образца уровня SAFE_BookStore далеко. Очень не хватает критики
Я на доменную модель вообще внимания не обращал, поскольку для меня важно было понять общие принципы работы. В некоторых примерах такая большая доменная модель, что приходится пробираться через с трудом, чтобы понять суть. Твой пример ставил целью показать, как делать chat, там принципы коммуникации важнее всего.

Google
Klei
27.07.2018
09:29:34
Vagif
27.07.2018
09:32:35
Здесь периодически задают вопросы об использовании F# в продакшн, у нас адаптация заняла несколько лет, по-прежнему большинство дотнетчиков в организации работает на C#, но мы достигли некоего критического числа разработчиков (10+), предпочитающих писать на F#, теперь любой новый проект можно начинать на F#, это один из стандартных языков организации. Что очень помогло в адаптации - это понимание частью руководства того, что смена языка программирования зачастую менее радикальное решение, чем смена базы данных или протокола интеграции, поскольку язык программирования снаружи не виден, в отличии от многого другого. Но у нас вообще либеральная среда, каждая команда вправе выбирать собственные технические средства. Никто из начавших работать на F# не хочет возвращаться на C#.

Vagif
27.07.2018
09:44:03
Да, я смотрел пример из Elmish.Bridge (https://github.com/Nhowka/TestRemoting), он с одной стороны минималистичный, там весь клиент сидит в файле Client.fs, и view, и бизнес-логика. Но доменная модель построена вокруг DU с восемью значениями, и это убивает весь минимализм.

Но пример все равно полезный.

Oleg
27.07.2018
09:48:33
@VagifAbilov, нужно ли на Saturn переводить пример?

Alex
27.07.2018
09:55:08
open FSharp.Data open System type Sample = JsonProvider<""" {"name":"11"} """> [<EntryPoint>] let main argv = let sample = Sample.Parse(""" {"name":"11"} """) printfn "hello %A" sample exit 0

Vagif
27.07.2018
09:55:32
Я пока Сатурном не пользовался, но вообще неплохо было бы. В Elmish.Bridge прямо на заглавной странице показывается, как его встраивать в Suave, Giraffe, Saturn. Это добавляет доверия к проекту.

Alex
27.07.2018
09:55:53
простой код, проект создал dotnet new console, msbuild собирает, dotnet run нет

Alex
27.07.2018
09:57:27
вот и я удивляюсь

Еще почему-то vs code не видит msbuild, хотя я винду вроде давно не настраивал, не должно было ничего поменяться

Oleg
27.07.2018
10:20:13
Я пока Сатурном не пользовался, но вообще неплохо было бы. В Elmish.Bridge прямо на заглавной странице показывается, как его встраивать в Suave, Giraffe, Saturn. Это добавляет доверия к проекту.
Сатурн неплох, захотелось переехать после последних постов Кшиштофа на Медиуме. Останавливает что связку Akka.Streams с сервером придется переписывать и заново вникать с хитросплетенные зависимости

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