Recentemente ho assunto F # (il mio background è C#) e sto leggendo il sito http://fsharpforfunandprofit.com, che sto trovando molto utile.(Kestrel) K-combinator: perché è utile?
Devo http://fsharpforfunandprofit.com/posts/defining-functions/ che è la sezione sui combinatori. Li capisco tutti (anche se il combinatore Y o Sage si avvita con la mente!) Con l'eccezione del Gheppio. Scott Wlaschin dà la definizione (in F #) come:
let K x y = x
non riesco a capire per la vita di me qualsiasi situazione in cui questo sarebbe utile. All'inizio ho pensato che potesse essere usato come operatore di catena, in modo da poter passare un valore a una funzione e quindi recuperare il valore originale. Ho scritto un tale operatore me stesso prima, ma come si può vedere che non è lo stesso:
let (>|) x f = f x; x
Se parzialmente applichiamo il combinatore K (con il valore 5) allora torniamo una funzione che ignora il suo argomento e invece restituisce 5. Ancora, non utile.
(K 5) = fun y -> 5
Qualcuno può darmi un esempio semplice di dove questo potrebbe essere utilizzato per favore?
: D dai un'occhiata a questo: https://en.wikipedia.org/wiki/SKI_combinator_calculus - è davvero divertente da un punto di vista accademico - anche se trovi alcuni usi in F # non dovresti chiamarlo solo "K" ^^ – Carsten
BTW se non lo trovi subito - 'K' è ad esempio usato per implementare cose come booleani, tuple, numeri, ... nel calcolo SCI (beh è un elementare elementare;)) - pensa a è una sorta di proiezione del * primo componente * – Carsten
Grazie, ho letto la pagina di Wikipedia ma non ho dato più informazioni di quante ne avessi già. – Richiban