2010-06-03 12 views
7

Se dovessi spiegare le espressioni Lambda a una quinta elementare (10/11 anni), come faresti? E quali esempi potresti dare, o le risorse potresti indicarle? Potrei trovarmi nella posizione di dover insegnare questo agli sviluppatori del 5 ° livello e potrei usare un po 'di assistenza.Espressioni Lambda per una 5a selezionatrice

[EDIT]: Il riferimento "5th Grader" era inteso come relativo a uno show televisivo americano che contrappone gli adulti al quinto elementare in un'impostazione di tipo quiz (credo). Intendevo dire che le persone che hanno bisogno di essere istruite non sanno nulla di Lambda e ho bisogno di trovare un modo per rendere le cose MOLTO semplici. Mi dispiace di aver dimenticato che questo forum ha un pubblico mondiale.

Grazie mille.

+6

Solo così noi residenti non statunitensi non dobbiamo andare a cercarlo, che fascia di età sono "quinti elementari" –

+1

Consiglio generico: basarsi su qualcosa che già sanno. Hanno già qualcosa sui delegati, i puntatori di funzione, la programmazione funzionale, il calcolo lambda, ...? Qual è il loro background? Se stanno appena iniziando a imparare a programmare, sei sicuro che le espressioni lambda o anche C# sono le cose giuste da insegnare a loro? – dtb

+1

Nelle scuole statunitensi, il quinto anno è di scuola elementare a circa 10-11 anni. http://en.wikipedia.org/wiki/Fifth_grade – spoulson

risposta

6

Basta chiamarlo una funzione senza nome. Se non è stata esposta a molti programmi, la sua mente non è già stata calcolata pensando che tutte le funzioni dovrebbero avere un nome.

La maggior parte della complessità relativa alle espressioni lambda è causata da una denominazione complicata e dalla sua collocazione su un piedistallo di marmo.

Un sacco di bambini creano ottimi siti Web con molte cose Javascript. È probabile che stiano usando espressioni lambda tutto il tempo senza saperlo. Lo chiamano semplicemente un "trucco".

1

Le espressioni lambda sono quelle che considero la programmazione di ordine superiore. Una spiegazione rigorosa richiederà un ampio apprendimento dei prerequisiti. Certamente, questo non è pratico al 5 ° livello.

Tuttavia, potrebbe aiutare a coprire alcuni concetti con l'esempio in un modo che rispecchia le situazioni fisiche della vita reale.

Ad esempio, una scala è una sorta di espressione lambda. Conteggia la massa degli oggetti posti su di esso. Non è una variabile perché non memorizza il numero da nessuna parte. Invece, genera il numero al momento dell'uso. Se usato nuovamente, ricalcola in base ai suoi input. Puoi prenderlo e usarlo da qualche altra parte, ma la meccanica sottostante (espressione) è la stessa.

+0

+1 per l'analogia della scala di peso – IAbstract

0

espressioni lambda in C# sono fondamentalmente delegati solo anonimi, in modo per spiegare quello che sono a CHIUNQUE hanno bisogno di capire in questo ordine:

Che un delegato è e ciò che essi sono utilizzati per.

Che cos'è un delegato anonimo e come è il modo più semplice per creare un delegato.

Sintassi di espressione lambda e come sia davvero un modo ancora più breve di creare un delegato anonimo.

+1

Direi che un delegato è un modo prolisso per scrivere un'espressione lambda ... perché agli studenti devono essere insegnate le caratteristiche linguistiche nell'ordine in cui sono state introdotte nella lingua? – dtb

+0

Non c'è bisogno di essere, penso solo se vedi l'intera immagine di cosa è, da dove viene e perché esiste ti aiuta a capire a cosa servirsi. –

1

se capisce già che cosa "funzione" è che si può dire che è la funzione che è necessario solo una volta e quindi non ha bisogno di un nome.

In ogni caso, se è necessario spiegare la programmazione funzionale, consiglierei di provare a rubare alcune idee da http://learnyouahaskell.com/ - è una delle migliori spiegazioni di idee dietro la programmazione funzionale che abbia mai letto.

+0

+1 per Haskell *** se *** insegnamento funzionale la programmazione è l'obiettivo. – dtb

0

Probabilmente non è la cosa migliore per iniziare a spiegare a un quinto selezionatore se un linguaggio OO all'avanguardia (C#) non lo ha ottenuto per 10 anni.

Difficile creare un'analogia per una funzione senza nome ... Forse è significativo perché è un modo meno dettagliato per specificare una richiamata?

2

Non penso che sia necessario spiegare le espressioni lambda ai bambini di età compresa tra 10 e 11 anni. Mostra loro come sono le espressioni lambda, cosa puoi fare con loro e dove puoi usarle. I bambini di quell'età hanno ancora la capacità di imparare qualcosa di nuovo senza fare affidamento su analogie per capirlo.

0

Suppongo che stiate davvero cercando un'introduzione di base per i programmatori, non i quinti selezionatori. (Per i quinti selezionatori, Python o JavaScript tendono ad essere i migliori). In ogni modo, due buone introduzioni a C# espressioni lambda:

Il primo (disclaimer - il mio blog) vi darà una rapida spiegazione dei concetti fondamentali. Il libro fornisce una copertura completa di tutti gli argomenti rilevanti.