Size: a a a

2020 June 16

I

Igor in F# Chat
Ребят, как для Async сделать zip без сторонних либ? (запустить 2 задачи паралельно и получить Async из пары)
источник

RM

Roman Melnikov in F# Chat
F# 5
async {
let! async1 = ...
and! async2 = ...
return (async1, async2)
}
источник

VK

Vladislav Khapin in F# Chat
Igor
Ребят, как для Async сделать zip без сторонних либ? (запустить 2 задачи паралельно и получить Async из пары)
async.startchild x2, await, return x1, x2
источник

I

Igor in F# Chat
Roman Melnikov
F# 5
async {
let! async1 = ...
and! async2 = ...
return (async1, async2)
}
Проверял? Мы тут на днях осуждали, что там для async не реализовали and!
источник

RM

Roman Melnikov in F# Chat
Igor
Проверял? Мы тут на днях осуждали, что там для async не реализовали and!
не проверял
забавно, что не реализовали
источник

I

Igor in F# Chat
Ну _наверное_ к релизу сделают
источник

VS

Vladimir Shchur in F# Chat
Igor
Ребят, как для Async сделать zip без сторонних либ? (запустить 2 задачи паралельно и получить Async из пары)
Async.Parallel ?
источник

I

Igor in F# Chat
Типы у асинков разные (можно конечно извратиться с DU или кастами)
но StartChild нормас подход
источник

VS

Vladimir Shchur in F# Chat
Igor
Типы у асинков разные (можно конечно извратиться с DU или кастами)
но StartChild нормас подход
ну в сишарпе просто - кастанул и радуешься)
источник

VS

Vladimir Shchur in F# Chat
это кстати может быть хороший пример того зачем нужны HKT
источник

VS

Vladimir Shchur in F# Chat
Igor
Типы у асинков разные (можно конечно извратиться с DU или кастами)
но StartChild нормас подход
вот кстати пример с кастами от самого Дона)
http://www.fssnip.net/ab/title/AsyncParallel2-and-AsyncParallel3
источник

VS

Vladimir Shchur in F# Chat
Подскажите плиз снова по фпарсеку, вот у меня есть код который работает
    let item = choice [
       dfProperty
       dfObject
   ]
   let dfRoot =
       item .>>. dfObject |>> DFRoot

dfPropetry и dfObject это мои парсеры, а я хочу чтобы и такой код работал
    let item = choice [
       dfProperty
       dfObject
   ]
   let dfRoot =
       item .>>. item |>> DFRoot

а он мне кидает ошибку парсинга, т.е. dfProperty не получилось распарсить и вместо фоллбэка на dfObject кидается ошибка Expecting:...
источник

VK

Vladislav Khapin in F# Chat
If p1 fails with a non‐fatal error and without changing the parser state, the parser p2 is applied

А что в dfproperty?
источник

VS

Vladimir Shchur in F# Chat
    let dfProperty =
       manyCharsTill (noneOf <| seq { '{'; '}'; ' ' })  (skipChar ':') .>> spaces .>>. dfLiteral .>> spaces |>> DFProperty
источник

VS

Vladimir Shchur in F# Chat
    let dfObject =
       manyCharsTill anyChar (skipString " {") .>> spaces .>>. (many dfProperty) .>> (skipChar '}') |>> DFObject
источник

VK

Vladislav Khapin in F# Chat
Я слабо помню почему я так писал, но возможно тебе надо тоже через attempt

https://github.com/Liminiens/grinder/blob/master/src/Grinder/Commands.fs#L92
источник

VS

Vladimir Shchur in F# Chat
пасиб, попробую
источник

VS

Vladimir Shchur in F# Chat
супер, помогает)
источник

VK

Vladislav Khapin in F# Chat
Видимо там состояние меняется и он падает в обычном виде
источник

VS

Vladimir Shchur in F# Chat
ну я хз как отключить состояние, везде вопросики доставил к .>>, все равно валилось
источник