Supponiamo seguente:Passando una funzione sulla rete in Haskell
Ho un tipo chiamato World
che rappresenta uno stato di simulazione. Ho anche questo tipo sinonimo:
type Update = World -> World
È Haskell in grado di serializzazione del tipo di aggiornamento in modo che possa essere passato attraverso la rete? O c'è qualche altro modo per farlo? Forse non sto cercando una serializzazione della logica del codice così tanto, come una sorta di puntatore o identificatore che può essere letto dall'altra parte. Sia il processo di invio che quello di ricezione eseguono lo stesso programma Haskell.
Si dovrebbe esaminare 'cloud haskell', che è fondamentalmente un sistema per passare i puntatori alle funzioni assumendo che ogni lato abbia un binario corrispondente. –
Considera di creare una struttura dati 'data Event = Thing | Thing2 Int | ... 'per rappresentare gli eventi atomici che possono accadere, quindi una funzione' update :: Event -> World -> World'. Puoi serializzare il semplice dato 'Event' type e passarlo (e aggiungere logging etc se vuoi) e quindi usare la funzione' update' a ciascuna estremità della connessione di rete. – AndrewC
Purtroppo, in generale la risposta è no. – augustss