Глядя на:
member this.PostAndReply : (AsyncReplyChannel<'Reply> -> 'Msg) * ?int -> 'Reply
Я не могу понять, почему подпись выглядит настолько интуитивно понятной для меня. Мы хотим отправить сообщение агенту и дождаться ответа. Почему мы должны дать ему странную функцию как "сообщение"?
См. снова этот фрагмент MSDN:
let rec loop() =
printf "> "
let input = Console.ReadLine()
printThreadId("Console loop")
let reply = agent.PostAndReply(fun replyChannel -> input, replyChannel)
if (reply <> "Stopping.") then
printfn "Reply: %s" reply
loop()
else
()
loop()
Я предпочел бы что-то вроде этого:
member this.PostAndReply : 'Msg * ?int -> 'Reply
Спасибо