@Fsharp_chat

Страница 564 из 772
Friedrich
01.05.2018
15:03:48
Я пока только проектирую. Может быть, позже сделаю рекорд, пока не знаю.

Даниил
01.05.2018
15:47:47
Чуваки. Как отформатировать? type Point<'T> = Point of x : 'T * y : 'T * z : 'T vs type Point<'T> = Point of x:'T * y:'T * z:'T
ни разу не видел чтобы полностью слитно хоть в каком-то языке писали тип через двоеточие либо x : T, либо x: T

Friedrich
01.05.2018
15:50:59
ни разу не видел чтобы полностью слитно хоть в каком-то языке писали тип через двоеточие либо x : T, либо x: T
Если честно, в описании аннотированных конструкторов (с именами переменных) в F#-коде я постоянно встречаю именно такое написание.

Ну или вот в коде компилятора нашего: https://github.com/Microsoft/visualfsharp/blob/1c6aba6af2e8949e8d7f871a3040ca823060d6aa/src/fsharp/ExtensionTyping.fs#L195-L203

Google
Friedrich
01.05.2018
15:53:15
(хотя там вообще бардак, на него не стоит равняться)

Компилятор работает лишь чудом и за счёт строгости языка :)

Mikhail
01.05.2018
15:54:49
Помогите, пожалуйста, разобраться, почему не билдиться visualfsharp. The imported project "D:\programming\3rd-party\visualfsharp\packages\XliffTasks.0.2.0-beta-000081\build\XliffTasks.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. D:\programming\3rd-party\visualfsharp\src\FSharpSource.Settings.targets

Mikhail
01.05.2018
15:55:39
Открыл .sln в корне

Friedrich
01.05.2018
15:55:40
Насколько я помню, надо запустить build.cmd (или build.sh)

Открыл .sln в корне
Во, сначала скрипт выполни, а потом открывай sln.

Он там что-то докачивает.

Я не уверен, что у меня получалось в студии его сбилдить, если честно. А вот скриптом точно собирал, когда контрибьютил туда.

Mikhail
01.05.2018
15:56:44
Спасибо, не ззаметил)

Friedrich
01.05.2018
16:05:17
Не смог создать массив длиной в int64 :(

Потому что Array.create : int -> 'T -> 'T []

А, и фиг с ними, .NET их не поддерживает. Апишка для создания массива такой длины есть, но она падает в рантайме. В F# всё сделано грамотно — с практической точки зрения длина массива ограничивается int.

Google
Vasily
01.05.2018
17:33:50
@mitutee build vs debug

оно соберет прото компилятор и пакеты скачает

Mikhail
01.05.2018
17:36:16
оно соберет прото компилятор и пакеты скачает
Чем протокомпилятор отличается от компилятора?

Vasily
01.05.2018
17:36:44
он используется для компиляции всего остального в солюшене

в том числе основного компилятора

что он есть такое и как эта магия происходит, я никогда не разбирался

у меня visualfsharp.sln не целиком компилится:

Severity Code Description Project File Line Suppression State Error Assets file 'C:\git\visualfsharp\tests\fsharpqa\testenv\src\PEVerify\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. PEVerify C:\Program Files\dotnet\sdk\2.1.104\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets 327

насчет anonymous records, надо комментить в PR с конкретными примерами применения, иначе не сдвинится

Evgeniy
01.05.2018
20:06:16
Привет.

Friedrich
02.05.2018
06:55:51
\o

Evgeniy
02.05.2018
07:04:26
Привет. :)

Anton
02.05.2018
07:04:44
Привет)

Vladimir
02.05.2018
08:10:01
Всем привет! Прошу помочь порефакторить функцию обработки сообщений из кафки) Задача звучит несложно - если процессинг сообщения (функция f) занимает больше секунды - остановать консьюмера, потом после завершения процессинга его опять запустить. Не знаю, как избавиться от shared mutable переменной consumerStopped. https://hastebin.com/ofuxurasij.vbs

Vladimir
02.05.2018
09:01:30
неа

Evgeniy
02.05.2018
09:08:44
Vladimir Ок. Наверное, одно из решений — агент, который инкапсулирует consumerStopped и обрабатывает сообщения.

Vladimir
02.05.2018
09:33:53
Ага, а как он назад нам скажет что сообщение обработалось?

Friedrich
02.05.2018
12:36:31
Мне надоело копипастить активный паттерн для регекспов из проекта в проект. Давайте запакуем его в нугет что ли?

Google
Vlad
02.05.2018
12:38:20
Мне тоже приходилось писать подобное

Friedrich
02.05.2018
12:38:21
А как он выглядит?
Так: http://www.fssnip.net/29/title/Regular-expression-active-pattern

Friedrich
02.05.2018
14:49:51
Почему нет?
Блин, там три строчки, стало стрёмно :)

Roman
02.05.2018
14:50:22
Блин, там три строчки, стало стрёмно :)
Может ещё набрать полезных

Может ещё набрать полезных
Ну и три строчки, зато какие!)

Aleksander
02.05.2018
14:53:02
А тайп провайдером для регексов никто не пользуется?

Sergey
02.05.2018
14:53:28
а что с ним не так?)

Aleksander
02.05.2018
14:57:44
Да вот как раз и интересно) почему @fvnever вот разбирает регексы актив паттернами вместо тайп провайдера?)

Friedrich
02.05.2018
14:58:31
Хм.

Vasily
02.05.2018
15:29:45
Vladimir задача какая-то странная. Может тебе просто нужен backpressure?

Vladimir
02.05.2018
15:32:17
Vladimir задача какая-то странная. Может тебе просто нужен backpressure?
То что мне нужно, я написал) В коде выше реализовал через фшарповский обзервабл, других реализаций не видел. А что такое backpressure?

Vasily
02.05.2018
15:32:40
понятно

backpressure - это искусственное замедление продьюсера в случае медленного консьюмера

Vladimir
02.05.2018
15:35:33
Проблема не в продьюсере, просто если какая-то проблема в сети, не хочется чтобы консьюмер набирал себе сообщений которые не может запроцессить

А если он не будет набирать, то его оркестратор прибьет

Vasily
02.05.2018
15:36:44
а, понял. Интересный нюанс насчет прибивания.

Vladimir
02.05.2018
15:37:27
Поэтому надо сделать паузу, тогда он не будет набирать и его прибивать тоже не будут

Vasily
02.05.2018
15:39:32
Короче, если делать по-взрослому, бери Akka Streams + вот это https://github.com/AkkaNetContrib/Alpakka/pull/32

судя по коду, оно будет паузить консьюмера в случае заполнения буфера

Google
Vasily
02.05.2018
15:40:15
ну и ты получишь офигительно мощный стрим процессинг

с параллельностью, троттлингом, поддержкой F# асинков, супервайзингов стримом и отдельныз стейджей, и т.д.

во https://github.com/AkkaNetContrib/Alpakka/pull/32/files#diff-008c57d1ad081c51d0a84d85cf18db4bR216

Vladimir
02.05.2018
15:50:29
Ну это же надо всю акку затянуть) Смотрю они сделали почти так же

Evgeniy
02.05.2018
16:24:36
Привет.

iAmFixik
02.05.2018
16:24:44
Привет)

Evgeniy
03.05.2018
05:10:25
https://twitter.com/dsyme/status/991787424350134274

Pavel
03.05.2018
06:16:28
https://twitter.com/dsyme/status/991787424350134274
Что-то мне кажется будет сложно такое продать. Слишком много костылей. Для приятной кроссплатформы я пожалуй выберу flutter, хоть там и dart)

Igor
03.05.2018
06:20:49
Фи фи фи, сахарная-java вместо языка. В RN хоть на F# можно писать. (а продакшен все равно все будут на java/kotlin требовать)

Pavel
03.05.2018
06:40:53
Фи фи фи, сахарная-java вместо языка. В RN хоть на F# можно писать. (а продакшен все равно все будут на java/kotlin требовать)
Да конечно, не f#, но не Java и то хорошо. Самое главное, что flutter изначально пошёл другим путем, а не обложился костылями как RN или xamarin.

Транспайлер f# в dart ?

Andrew
03.05.2018
06:50:42
Pavel
03.05.2018
06:51:39
Зачем в дарт?
Для удобной кросплатформенной мобильной разработки :)

Andrew
03.05.2018
06:52:36
Andrew
03.05.2018
06:54:23
Гугловый ответ ксамарину?

Igor
03.05.2018
06:55:00
Транспайлер f# в dart ?
Ну фиг знает, меня почему-то RN устраивает с F# + Elmish. Flutter интересен, но ничего кроме android/ios не умеет. А тот же RN, можн скомпилять в windows-UAP/macOS и даже Terminal или html5 Возможно если Flutter выстрелит, то и для него сделают обертку.

Andrew
03.05.2018
06:59:51
Ну фиг знает, меня почему-то RN устраивает с F# + Elmish. Flutter интересен, но ничего кроме android/ios не умеет. А тот же RN, можн скомпилять в windows-UAP/macOS и даже Terminal или html5 Возможно если Flutter выстрелит, то и для него сделают обертку.
С чего ему выстрелить? Дартом пользуется полтора человека, уже есть как минимум две популярные альтернативы (рн и ксамарин), разве что поддержка гугла — но это штука такая

Google
Igor
03.05.2018
07:04:44
С чего ему выстрелить? Дартом пользуется полтора человека, уже есть как минимум две популярные альтернативы (рн и ксамарин), разве что поддержка гугла — но это штука такая
Ну я же написал "возможно" и "если" ?. Они там новую ОС разрабатывают, где будет поддержка Flutter из коробки (в к поддржке дополнение к Android-приложения). Через неделю Google IO и там _может_ будут интересные анонсы... но это совсем др история.

А на сколько это просто скомпилить RN приложение, изначально написанное под мобильники, под другую платформу? Например macos?
Я компилял в html5 (что бы в Electron запускать) - оно заработало, но там был один глюк с разметкой, с которым я не стал разбираться (это был просто тест). Есть такая мысля у меня что "нативные" приложения уже и на мобилках отжили свое и надо смотреть в строну PWA. В Android их поддержка была уже давно, а сейчас и в iOS добавляют.

Vasily
03.05.2018
07:07:27
https://twitter.com/mattgumbley/status/727140296912441345

https://twitter.com/unclebobmartin/status/991908886335709184

неожиданно

Evgeniy
03.05.2018
07:18:43
неожиданно
Раньше он с кложей знакомился?

Vasily
03.05.2018
07:19:45
да он с ней как-то похоже не очень серьезно всё время знакомится

Evgeniy
03.05.2018
07:48:27
Привет.

jied
03.05.2018
07:49:28
Привет.
Салют)

Igor
03.05.2018
08:12:31
http://sogrady-media.redmonk.com/sogrady/files/2018/03/lang.rank_.118-1024x726.png Смотря как мерить) По redmonk они примерно близки

Andrew
03.05.2018
08:14:51
F# популярнее Dart?
Как это утверждение следует из моего сообщения?

Roman
03.05.2018
08:16:06
Как это утверждение следует из моего сообщения?
Это личные ассоциативные пути навели меня на этот вопрос. Мне правда интересно, насколько Dart и f# популярны относительно друг-друга.

Pavel
03.05.2018
08:17:16
Так дело ведь не в языке. F# замечательный язык, но это не делает его популярным.

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