
Friedrich
10.10.2018
17:47:34
Именно вот так, Y/7ОР0tO.

Ayrat
10.10.2018
17:47:41

Grigoriy
10.10.2018
17:47:49

Ayrat
10.10.2018
17:47:51
Так оно всю жизнь можно было

Google

Friedrich
10.10.2018
17:47:55
Ты смотри, там в тупле именуются компоненты
Собственно, ещё столько же буду про это не знать, потому что больше нигде не пригодилось :)

Andrew
10.10.2018
17:48:49

Grigoriy
10.10.2018
17:48:52

Friedrich
10.10.2018
17:48:56
И, кажись, там нельзя расставить скобочки, чтобы было менее упорото
А криво написанный рефлекшен очень удивляется, если их нету.

Grigoriy
10.10.2018
17:49:47
а... т.е. просто так без декомпозиции всё равно не достать?

Friedrich
10.10.2018
17:49:49
WCF потом по этим колбэковым интерфейсам в рантайме чего-то кодегенил у меня, поэтому это вдруг стало важно.
По именам можно будет доставать из новых анонимных структур, которые одно время допиливали.

Google

Friedrich
10.10.2018
17:51:20
Мб придумаем

Anna
10.10.2018
17:56:39

Friedrich
10.10.2018
17:56:55
https://stackoverflow.com/questions/36165981/is-there-a-way-to-specify-named-arguments-for-a-function-in-an-f-constructor вот на SO чувачок спросил похожую вещь, ему сказали, что нельзя.

Ayrat
10.10.2018
18:00:31
Ты смотри, там в тупле именуются компоненты
подразумевалось, что вот так
type IService =
abstract member StartDownload:
uri: string ->
dest: string ->
progressCb: (param1: int64 * param2: int64 -> unit) ->
completeCb: (unit -> unit) ->
unit
сделать нельзя

Friedrich
10.10.2018
18:00:37
Ну и вообще-то непонятно, как это будет работать
Там же в типе делегат
progressCb: FSharpFunc<int64, int64, uint> – ну вот куда в это определение делегата ты присунешь аргументы?

Ayrat
10.10.2018
18:01:19

Friedrich
10.10.2018
18:01:32

Ayrat
10.10.2018
18:01:39
обмазать всё атрибутами в рантайме

Friedrich
10.10.2018
18:01:49
У нас метаданные делаются даже ещё более жоско, чем в C#.
Я же рассказывал: львиная доля метаданных у нас не в атрибутах, а в отдельном волшебном блобе, который у сборки запихивается в ресурсы!

Grigoriy
10.10.2018
18:28:59

Google

Vasily
10.10.2018
19:11:05

Grigoriy
10.10.2018
20:21:07
Привет!

Nick
10.10.2018
20:21:56
Привет :)
прогаю на питоне, прознал про ваш чатик, решил почитать про код немножко

Grigoriy
10.10.2018
20:23:40

Nick
10.10.2018
20:23:58
ну эй, норм язык)

Grigoriy
10.10.2018
20:24:27
да никто не спорит, но чатик про F# )

Nick
10.10.2018
20:25:02
я не навязываюсь, я хотел про F# и почитать

Ayrat
10.10.2018
20:25:37

Grigoriy
10.10.2018
20:26:17
https://fsharpforfunandprofit.com/
вот - про почитать :)
ну, а если вопросы - то задавай конечно :)

Nick
10.10.2018
20:30:39
спасибо!
вопросы по мере поступления)

Grigoriy
10.10.2018
22:42:35
Привет!
Ayrat получилось у меня разбить +- равномерно на N кусочков но дальше было не понтяно что - либо вкрячивать в каждый RunSync - тогда это ничем не лучше PSeq, либо в каждый кусок Async.Parallel, тогда это [наверное] ничем не лучше простого изничально распараллеливания. Попробовал ща самый примитивный Array.map (... async { }) |> Async.Parallel... И ОНО ПРОСТО ЗАЛЕТАЛО! 18-20 секунд вместо исходных 4х минут (ну и остальных). Скорее всего это связано с тем, что нашим офисом сейчас никто не пользуется... поэкспериментирую в рабочее время! спасибо за идеи!

Ayrat
11.10.2018
03:44:58


Grigoriy
11.10.2018
03:54:53
Да я жопой чувствую, что это не кошерно. Но не могу придумать, как список асинков каждой группе запустить :(
Завтра на свежую голову ещё подумаю

Google

Ayrat
11.10.2018
04:37:51

Grigoriy
11.10.2018
04:39:08
да, но в каждой группе - тоже надо что-то впендюрить - иначе тип результата не совпадает
или я что-то не допонимаю

Pavel
11.10.2018
04:53:27
/help@FailsBot

FailsBot
11.10.2018
04:53:27
/help@FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.

Pavel
11.10.2018
05:05:08
Ayrat можешь за гопак пояснить?

Ayrat
11.10.2018
05:05:17


Pavel
11.10.2018
05:05:21
https://sharplab.io/#v2:DYLgZgzgNAJiDUAfA9gBwKYDsAEAJNAhgMYCwAUOQC4CeG2AsuhBAQObrYC852v2i2ACroATgFsAlpgKV0PPgIDS6atmRhsRABYER5csHSVsW7QUyZ0wLtgDCWgDyNmbdAD4AFAEoDR7KjMLKxt7JyYWdk8fMkNjCEo0DBgbAEkANV0HACNkZGAovmx9Chi/EXQiE3RdY28bACtkLOwAb3lC3jEZbQBCOy0AOkERagHKAgBrDlMdIOsAdwlKLXaOgQBlZDEOYXEpGQ4AWjdsb1XCgQB9bGOisg6+GGQ++wHWCQA3DgDZy2sPZSqADkhyB0QevCefUoEm2AHkAK6UegSYDACQQbAARgADHjznxypQESJMH0tNURLVwRCAL58Yq+YzlSqoERSakNJqtAmdbpaF6DcZTfyBP7YRbLXn8ISiSTSWQ3E5ne4QpQqTRaJX+dmYSgaABEAFIiAbNdKIR0iSSyTqOacaQ9aYzSsyKtgptQcrpknVONhGs02qqHl1KNpTutqPF0GIBrZkJgIHl0AMAErVGCA7CUEQI9BeAaA+y6CVLFYhtbYIEARyB2qh/Ten2mYuCu3lBwtlsbr3eX1Fv3bcv2sm7EJVloEnobzyb/e+bf+2c9jstD2tpL6nu9Il9a8KzpKsQDTUx/oA2qsKTUHas2fbJ3wd8gfXfKwBdYoXhwAUT1IwAArIBybhfq62BdFI2C6KwHw2KsJ5EImRAkuUeoAFJnjYWFZAMyGYCkrCYMg5SnlkECrHmOAEahIjoZQuGUZW966vqOAGgAIom6AGqsOJ3OQQA===
почему когда я нажимаю кнопку все встает колом. потом нажимаю еще раз и все продолжается печать?


Ayrat
11.10.2018
05:11:20
Ага, понял
у тебя хартбиты зависят от наличия в hchannel значения, непонятно зачем кстати
т.е. я понял что ты хочешь терминировать хартбиты, то если в хченел ничего нет, то хартбит залочится

Pavel
11.10.2018
05:13:20
прибить его когда q

Ayrat
11.10.2018
05:13:22
тут нужны альтернативы!
т.е. или ты получаешь терминейт, ИЛИ делаем хартбит.
Далее рекурсимсчя

Pavel
11.10.2018
05:14:01
а там же Try он не спасет от лока?
и при запуске в канале то ниче нет и хартбит не лочится
я чет упускаю в логике видимо

Ayrat
11.10.2018
05:38:38
https://sharplab.io/#v2:DYLgZgzgNAJiDUAfAxASQAQAFMCIDCIAOgKoQCmAThCeRYQHQB2ArgOZkAuhADgIYDGAa17tqACwD2ffoQAM9ACz0AjIWABLAEaFGnBQHZlOALAAoZBXQ4AElIH08EimRPnLNu/1dmpZRultpH24/AM96VEYwdQAPMggzM2BOdEEyAE88MXQAXnQsgAoASiSUiA4pEJhc9FQANV4KYsTTZI50Z350MTJG9uKas3Rh9ABBYA56fkkJciGRhYBtdHLKsmqAPQBaAD56dGbTBePUjKz0ACoAHi30AHItu/QNnL30DnUAWzIAeWYOACy6mAGgg6GUskh6AAuvNhi8dt1ehQOC02h0yF1uBR1Ix+kVcnCxhMpjM5kcTuhlqtuFVnrt9odKSMCmlMtltojsbiOGArABSLwEhHobl4mFolKddDsDgAaQyAxyRM+vA40wOAGV0uUyJ8HBJGBAJMl6AAlXowBXpd4UZhkIr0a1ZRroADu6g4YiJiHuAEcnrsVhVaetLlc8gNEIi/fb7T7Tjag2zztd4In0NGOsxGABuGWca2HUrtVW49AAfUGFOGPT6UZjcbIqFYjCcZCJYo4DfQsbI9pbbecRNl1p9iIAUhJNPRDQAVMTOXgwAAKEhN6HHvabg/bRM7OLxYH8OAAIoaXETZJvTGYy/5FohENCgA=

Google

Ayrat
11.10.2018
05:39:24
основные изменения - keyboard уехал на тредпул, т.к. это офигенно плохо для гопака, который владеет всего-то N тредами что-то блочить в нём.
Ну и заюзаны альтернативы
усё работает
ты увидишь один run в теле, это на самом деле нормально, т.к. там неблокирующая операция

Grigoriy
11.10.2018
05:40:29
Котики уже и в коде :)
<- '-' ^=>

Ayrat
11.10.2018
05:40:51
чиорт побери, да
страшное место

Pavel
11.10.2018
05:42:02

Ayrat
11.10.2018
05:42:14
я кстати в heart() ошибся, там надо рекурсивный вызов во вторую ветку альта впихнуть
а так получается что он вечно крутится)
причём не просто крутится, а прям унижает проц

Roman
11.10.2018
05:44:36
операторы типа ^=>. имеют какое-то общепринятное толкование? Или это чистая отсебятина от автора?

Ayrat
11.10.2018
05:44:53
let rec heart () =
Alt.choose
[ stopped ^->. ()
keyCh *<- '-' ^=>. timeOutMillis 1000 ^=> heart ]
так много где обозначают оператор который отбрасывает противоположную часть
типа >>=. тот же монадический байнд но с игнором левой части