Size: a a a

2020 December 30

Dv

Dr. Friedrich von Ne... in F# Chat
Alex K
у меня другой вопрос по Akka.FSharp
каким образом можно менять стейт актора?
в C# есть Become(receive)
в F# есть доступ к этому API, но это совсем не функциональный подход.
Вроде, у Akkling был альтернативный вариант?
источник

AK

Alex K in F# Chat
да, но то уже совсем другая либа)
источник

Dv

Dr. Friedrich von Ne... in F# Chat
А в Akka.FSharp и должен быть стандартный подход доступен
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Для этого официальный биндинг и есть жи?
источник

MS

Michael Snytko in F# Chat
Vladimir Shchur
прикольно что это коммит от чувака который делает третьего клиента для пульсара))
А зачем столько клиентов ?
источник

AH

Ayrat Hudaygulov in F# Chat
Alex K
у меня другой вопрос по Akka.FSharp
каким образом можно менять стейт актора?
в C# есть Become(receive)
в F# есть доступ к этому API, но это совсем не функциональный подход.
вернуть другой loop
источник

AH

Ayrat Hudaygulov in F# Chat
ты же делаешь актора, который возвращает функцию обработки следующего сообщения
источник

AH

Ayrat Hudaygulov in F# Chat
ну вот верни другую)
источник

AK

Alex K in F# Chat
Ayrat Hudaygulov
ты же делаешь актора, который возвращает функцию обработки следующего сообщения
да, попробовал и работает отлично. спасибо!
источник

AK

Alex K in F# Chat
просто ловлю кайф от того как у вас тут в F# всё красиво и лаконично
источник

AH

Ayrat Hudaygulov in F# Chat
А ещё можно луп называть по смыслу, а не просто loop!
источник

AH

Ayrat Hudaygulov in F# Chat
Ну если он не один
источник

AK

Alex K in F# Chat
да, так и делаю
источник

AK

Alex K in F# Chat
ну, название же должно соответствовать стейту актора
источник

AK

Alex K in F# Chat
а я правильно понимаю что всех чайлд акторов нужно пихать в аргументы к другому лупу?
источник

AH

Ayrat Hudaygulov in F# Chat
Alex K
а я правильно понимаю что всех чайлд акторов нужно пихать в аргументы к другому лупу?
необязательно, ты же можешь их локально создать и просто в функциях лупа использовать как замыкание

let childActor1 = ...
let childActor2 = ...
let rec loop1 = ...
  childActor1Send ...
  return loop2
and rec loop2 =
 childActor1Send ...
 return loop1
источник

AH

Ayrat Hudaygulov in F# Chat
псевдокод
источник

AH

Ayrat Hudaygulov in F# Chat
если чо, то можно взаимозамкнутые лупы создать
источник

AH

Ayrat Hudaygulov in F# Chat
менее культурный человек назвал бы это залупой, но я не такой
источник

VS

Vladimir Shchur in F# Chat
Michael Snytko
А зачем столько клиентов ?
"официальный" очень слабый, а чуваку этому очень хотелось на сишарпе писать, вот и напилил на акке своего. Поэтому крайне удивительно что он PR на фарше послал)
источник