В FP ваши «объекты», как правило, являются функциями.В этом случае вместо нескольких объектов, каждый с двумя функциями-членами, у вас будет несколько функций для обработки различных сценариев.
В этом случае у вас есть:
receiveMessage: string -> ()
То есть receiveMessage
- это функция, которая принимает string
и ничего не возвращает - unit
.Аналогично:
sendMessage: (f: string -> ()) -> (msg: string) -> ()
Т.е. sendMessage
принимает receiveMessage
реализацию и string
и возвращает unit
.
Итак, используя такой язык, как F #, мы можем получить следующее:
let sendMessage (f: string -> ()) (msg: string) = f(msg)
let aRecv (msg: string) = // Do something with msg
let bRecv (msg: string) = // Do something else with msg
...
sendMessage bRecv "Hello b!"
sendMessage aRecv "Hi a!"
...
Так как ваш вопрос является общим, я оставлю это как общий ответ.Если у вас есть что-то более конкретное, этот ответ можно расширить.