1
00:00:02,230 --> 00:00:04,220
Ciao, questo è no.

2
00:00:04,270 --> 00:00:05,530
E bentornato.

3
00:00:05,590 --> 00:00:08,060
Quindi non iniziamo con i lambast.

4
00:00:08,350 --> 00:00:14,380
Qui puoi vedere la lettera greca Lamda che viene usata come rappresentazione per questo argomento nella lezione

5
00:00:14,380 --> 00:00:15,070
introduttiva.

6
00:00:15,090 --> 00:00:21,160
Vedremo un esempio dopo che lambda è stato polarizzato come argomento per aumentare un costruttore

7
00:00:21,160 --> 00:00:23,860
che si aspettava un'istanza del concorrente.

8
00:00:23,860 --> 00:00:30,190
Quindi il lammed out e capsular alla logica per l'ordinamento di alcuni comportamenti è

9
00:00:30,310 --> 00:00:37,500
stato trasmesso sull'espressione lambda su lambda è essenzialmente una funzione che può essere passata in giro.

10
00:00:37,570 --> 00:00:40,110
Non è associato a nessuna classe.

11
00:00:40,210 --> 00:00:47,830
È semplicemente una funzione di per sé che è nella nostra terminologia familiare che un alunno di un morso

12
00:00:47,830 --> 00:00:55,270
di metodo è considerato come una delle caratteristiche più importanti che è stata ordinata nell'8 luglio, che tutti

13
00:00:55,270 --> 00:00:58,610
hanno alcuni elementi di programmazione funzionale per noi.

14
00:00:58,690 --> 00:01:06,370
Come abbiamo discusso in precedenza, abilitare e scrivere più rapidamente e in modo più compatto e pulito prima che le classi

15
00:01:06,400 --> 00:01:11,180
anonime dei lambast venissero usate per eseguire compiti simili di trasmetterle alla funzionalità.

16
00:01:11,470 --> 00:01:17,410
E in questa lezione apprendiamo che la terra non è tassabile e discuteremo anche di come ciò sia

17
00:01:17,410 --> 00:01:24,190
diverso da una demo di Crossus che deve essere parte della lezione di follow-up, in quanto de-selezionata è del tutto

18
00:01:24,190 --> 00:01:24,860
sbagliata.

19
00:01:25,240 --> 00:01:27,510
Quindi, sii paziente e goditi la lezione.

20
00:01:29,420 --> 00:01:36,050
Solo un breve sguardo alla storia dei lambasts Lamb viene dal calcolo Lambda che

21
00:01:36,050 --> 00:01:44,660
è una notazione matematica per funzioni ed è stato introdotto nel 1930 dal famoso matematico Alonzo Church che

22
00:01:44,660 --> 00:01:52,190
era anche un Ph. D. consigliere di Alan Turing che

23
00:01:52,190 --> 00:01:58,580
sappiamo essere considerato il padre dell'informatica e tutte le funzioni nel calcolo lambda sono anonime.

24
00:01:58,630 --> 00:02:01,410
Cioè sono senza nome.

25
00:02:01,470 --> 00:02:06,200
Ed ecco un esempio di espressione del calcolo lambda qui.

26
00:02:06,210 --> 00:02:14,550
X è l'argomento della funzione anonima rappresentata da lambda e il corpo segue il dock

27
00:02:15,210 --> 00:02:16,090
qui.

28
00:02:16,130 --> 00:02:25,210
Il quadrato dell'argomento di input è computerizzato e il famoso scienziato informatico degli anni '50 John McCarthy ha inventato il Lisp

29
00:02:25,270 --> 00:02:33,560
mentre era al MIT e il Lisp è il secondo più antico linguaggio di programmazione di alto livello.

30
00:02:33,790 --> 00:02:39,640
Nel caso in cui non hai sentito parlare di McCarthy è considerato uno dei fondatori dell'intelligenza artificiale.

31
00:02:39,640 --> 00:02:45,370
Sei solo accreditato di coniare quel termine di intelligenza artificiale che sappiamo essere molto difficile in questo

32
00:02:45,370 --> 00:02:45,980
momento.

33
00:02:46,300 --> 00:02:50,180
E se sei interessato puoi leggere di più su di lui su Wikipedia.

34
00:02:50,650 --> 00:02:57,820
Quindi non ha lipless e Lisp è stato progettato per moderare i problemi matematici ed è

35
00:02:57,820 --> 00:03:01,030
stato pesantemente influenzato dal lambda calcolo.

36
00:03:01,110 --> 00:03:08,340
Ed ecco un esempio di funzione lambda a meno che il lambda qui sia usato come un

37
00:03:08,550 --> 00:03:16,640
operatore sono definiti e deve funzionare sotto l'esempio stesso è simile alla funzione lambda che abbiamo visto in precedenza

38
00:03:16,640 --> 00:03:23,060
così altri linguaggi di programmazione funzionale avevano radici nel calcolo lambda sotto la sola programmazione

39
00:03:23,060 --> 00:03:24,380
acquistata usando funzioni.

40
00:03:24,380 --> 00:03:31,880
Non sono sicuro di questi giorni, ma quando ero uno studente laureato nel 2002 ci è stato insegnato Lisp Arnstein come

41
00:03:32,030 --> 00:03:34,650
parte del corso di lingua di programmazione.

42
00:03:34,730 --> 00:03:39,740
Posso ancora ricordare di implementare un gioco chiamato tic tac toe e cinque diversi linguaggi di

43
00:03:40,090 --> 00:03:41,470
programmazione sulle lingue utilizzate.

44
00:03:41,540 --> 00:03:50,180
Questo schema Java Python sul libro sull'implementazione e lo schema è stato veloce perché la sua sintassi era molto diversa da altri linguaggi di

45
00:03:50,180 --> 00:03:55,850
programmazione e lo schema era anche un linguaggio di programmazione funzionale, quindi ho pensato di

46
00:03:55,850 --> 00:03:57,190
condividerlo con voi.

47
00:03:58,510 --> 00:04:01,790
Quindi cos'è esattamente una lambda.

48
00:04:01,790 --> 00:04:06,110
È una funzione anonima, quindi non è e deve solo.

49
00:04:06,140 --> 00:04:14,120
Il vetro ma avanti e indietro deve funzionare come un modo compatto di definire una funzione che può essere

50
00:04:14,230 --> 00:04:21,880
passata, quindi è utile quando vogliamo passarlo su alcune funzionalità e aiuta a farlo in un grafico sullo

51
00:04:21,890 --> 00:04:22,710
sfondo.

52
00:04:23,620 --> 00:04:24,920
Dal momento che può essere passato.

53
00:04:24,970 --> 00:04:32,570
È fondamentalmente un'espressione espressione lambda e questi sono alcuni dei linguaggi che

54
00:04:32,580 --> 00:04:35,450
supportano le espressioni lambda.

55
00:04:35,540 --> 00:04:41,930
Ed ecco la sintassi per il riconoscimento degli allarmi in Java, quindi l'espressione inizia con i parametri

56
00:04:42,070 --> 00:04:43,940
della funzione tra parentesi.

57
00:04:44,150 --> 00:04:47,190
Quindi questi sono i parametri della funzione anonima.

58
00:04:47,190 --> 00:04:53,910
Successivamente l'elenco dei parametri è seguito dal simbolo che viene quindi seguito dal corpo della funzione, così

59
00:04:53,910 --> 00:05:00,300
come qualsiasi metodo il corpo può avere più istruzioni sull'ultima istruzione sarebbe l'istruzione scritta a meno

60
00:05:00,840 --> 00:05:04,850
che la funzione non sia in grado di leggere nulla.

61
00:05:05,230 --> 00:05:10,830
E in alcuni casi sarebbe anche possibile semplificare ulteriormente la sintassi e vedremo presto come

62
00:05:10,830 --> 00:05:12,350
si può fare.

63
00:05:14,030 --> 00:05:20,020
Sotto espressione lambda viene assegnata una variabile il cui tipo è un'interfaccia funzionale di funzione.

64
00:05:20,120 --> 00:05:26,840
Quindi l'esecuzione del problema del tipo di destinazione è una funzione in cui è tipicamente la

65
00:05:27,560 --> 00:05:34,770
variabile sarebbe un parametro del metodo e sappiamo che un'interfaccia funzionale è un'interfaccia che espone un singolo metodo astratto.

66
00:05:35,020 --> 00:05:41,010
Quando si discute e sulle cause, si afferma che tale interfaccia può essere utilizzata per definire una

67
00:05:41,020 --> 00:05:43,970
strategia e un ufficio in classi anonime diverse.

68
00:05:44,020 --> 00:05:50,950
Implementando che questo libro ha le diverse strategie così in modo simile possiamo ora come le diverse espressioni

69
00:05:50,950 --> 00:05:57,480
lambda che agiscono come strategie diverse, quindi normalmente non usano le GUI per le espressioni lambda.

70
00:05:59,080 --> 00:06:04,810
Poiché un'interfaccia di funzione ha un singolo metodo astratto, viene anche chiamata

71
00:06:04,810 --> 00:06:08,750
interfaccia a un metodo astratto come a.

72
00:06:08,920 --> 00:06:14,620
E questo è un esempio della nostra discussione sui capi anonimi e lo abbiamo anche visto nella

73
00:06:14,620 --> 00:06:15,950
lezione introduttiva qui.

74
00:06:15,970 --> 00:06:21,730
Un'istanza di una classe anonima viene passata come concorrente su Chrisette severa o fuori.

75
00:06:21,730 --> 00:06:29,020
Ora vediamo come possiamo sostituire la classe anonima con quella espressione lambda. Quindi, per prima cosa, abbiamo questo blocco

76
00:06:29,020 --> 00:06:34,270
fuori campo sulla necessità di dimenticare l'espressione lambda su un vincolo di spazio.

77
00:06:34,270 --> 00:06:37,930
Qui viene mostrata solo la parte rilevante dell'espressione.

78
00:06:37,930 --> 00:06:44,980
L'espressione lambda è quella di fornire la logica per il comparatore e sappiamo che

79
00:06:45,070 --> 00:06:54,100
l'espressione lambda inizia con i parametri di funzione in modo da avere questo documento che parametro di bombardamento che

80
00:06:54,100 --> 00:07:02,440
prossimo abbiamo l'Eidelson, ma dopo che abbiamo semplicemente il corpo che è identico al corpo nella questione.

81
00:07:02,850 --> 00:07:09,810
Quindi, se stai semplicemente analizzando la funzionalità di come possiamo vedere, è molto più compatto di quanto non debba afferrare

82
00:07:10,080 --> 00:07:12,940
il movimento senza la nuova parola chiave.

83
00:07:12,970 --> 00:07:19,970
Il nome della notte seguente su di esso è anche molto efficiente in quanto non stiamo creando un oggetto qui.

84
00:07:19,980 --> 00:07:24,920
Ora questa espressione lambda può essere ulteriormente semplificata.

85
00:07:24,930 --> 00:07:27,050
Ecco la semplificazione.

86
00:07:27,180 --> 00:07:33,030
La stringa del tipo di parametro per i due parametri viene qui omessa poiché può essere automaticamente

87
00:07:33,030 --> 00:07:34,120
inserita dal compilatore.

88
00:07:34,410 --> 00:07:40,830
Il compilatore immette il pipe dall'argomento che viene specificato anche nell'espressione di creazione dell'istanza. Lo stipendio anale

89
00:07:41,610 --> 00:07:45,410
potrebbe non essere possibile per tutte le espressioni lambda.

90
00:07:47,510 --> 00:07:53,450
Quindi, se il corpo coinvolge questa singola affermazione, possiamo avere qualcosa di simile con la base che

91
00:07:53,600 --> 00:07:58,160
certe parole P e terminano il punto e virgola e siano omesse.

92
00:07:58,270 --> 00:08:02,410
E questa è essenzialmente un'espressione.

93
00:08:02,470 --> 00:08:05,560
Quindi in questo caso la sintassi generica sarebbe come questa.

94
00:08:06,190 --> 00:08:09,680
E questa sarebbe la sintassi generica per i primi due esempi.

95
00:08:09,710 --> 00:08:12,140
Lì abbiamo uno o più studenti.

96
00:08:12,250 --> 00:08:15,880
Quindi abbiamo le parentesi e al loro interno le affermazioni.

97
00:08:15,880 --> 00:08:22,430
Quindi queste sono alcune semplificazioni che possono essere eseguite per rendere l'espressione lambda ancora più compatta.

98
00:08:22,450 --> 00:08:26,540
Nota che qui sappiamo che il concorrente è un'interfaccia di funzione.

99
00:08:26,540 --> 00:08:31,630
Se non si tratta di un'interfaccia di funzione, si otterrebbe un errore del compilatore se si tentasse di analizzarlo.

100
00:08:31,670 --> 00:08:33,000
Missione di Lambastes

101
00:08:33,160 --> 00:08:39,490
Quella è un'espressione non può essere assegnata a un parametro di metodo su qualsiasi variabile il cui tipo

102
00:08:39,640 --> 00:08:41,210
non sia nell'interfaccia funzionale.

103
00:08:41,230 --> 00:08:45,560
Quindi l'espressione lambda è solo un'implementazione dell'interfaccia funzionale.

104
00:08:46,030 --> 00:08:49,200
Ora, se ci pensi, ha anche senso.

105
00:08:49,270 --> 00:08:56,420
Ad esempio, se consideriamo un'interfaccia che ha due metodi con nomi diversi sulla stessa lista di

106
00:08:56,420 --> 00:09:03,970
parametri, se passiamo un compilatore di espressioni lambda non sapremo quale dei due metodi deve corrispondere alla

107
00:09:03,970 --> 00:09:09,070
funzione lambda in quanto una funzione lambda non ne ha.

108
00:09:09,070 --> 00:09:15,790
Quindi qui stiamo dicendo che l'interfaccia ha due metodi con nomi diversi ma quello stesso senza parametri e

109
00:09:16,250 --> 00:09:20,030
il compilatore non saprà quale di queste due funzioni.

110
00:09:20,140 --> 00:09:22,240
L'espressione lambda corrisponderebbe a.

111
00:09:22,720 --> 00:09:29,130
Quindi deve essere un'interfaccia di funzione e questo sarebbe anche dimostrativo. Chartley Najla ha fatto alcuni

112
00:09:29,130 --> 00:09:30,500
esempi di lambda.

113
00:09:30,600 --> 00:09:31,880
Ecco il primo.

114
00:09:31,890 --> 00:09:38,760
Rappresenta semplicemente un metodo che non accetta parametri e vede il bianco.

115
00:09:38,780 --> 00:09:45,740
Questo rappresenta un metodo in un'interfaccia che crea un'istanza di un libro e stampa semplicemente il titolo del

116
00:09:45,740 --> 00:09:46,310
libro.

117
00:09:46,790 --> 00:09:54,660
Quindi il tipo scritto qui è anche abbastanza Ha avuto un libro così come un input e un valore booleano viene restituito

118
00:09:55,250 --> 00:10:02,270
se la valutazione del box è maggiore o uguale il punto intero di un equipaggio verrebbe restituito qui è

119
00:10:02,270 --> 00:10:08,900
una rappresentazione semplificata dello stesso esempio il il corpo del metodo è solo un'espressione, quindi nessuno usa tutto

120
00:10:08,900 --> 00:10:16,720
l'ordine delle parole di destra e di chiave e poi invia CONAN. Ecco un'ulteriore semplificazione assumendo che il tipo del parametro

121
00:10:16,740 --> 00:10:19,760
del metodo possa essere dedotto dal compilatore.

122
00:10:19,890 --> 00:10:22,530
E questa sarebbe la forma più semplice possibile.

123
00:10:22,890 --> 00:10:28,140
Nota che qui non ha senso perché esiste un solo parametro.

124
00:10:28,140 --> 00:10:34,310
Quindi le parentesi non sono necessarie se abbiamo un solo parametro e la parentesi è obbligatoria.

125
00:10:34,440 --> 00:10:42,760
Se abbiamo più di un parametro ci sono più parametri come on e in questo esempio viene scritta una stringa.

126
00:10:42,940 --> 00:10:49,560
Quindi abbiamo un'espressione come corpo Hulver, non possiamo farlo.

127
00:10:49,740 --> 00:10:53,940
E questo perché non è Garlett a dirlo.

128
00:10:54,150 --> 00:10:55,750
E così dovrebbe essere.

129
00:10:55,750 --> 00:11:04,140
Devi averlo letto e fatto il kiver Finalmente non puoi farlo perché non è un'esibizione.

130
00:11:04,140 --> 00:11:05,580
È una dichiarazione.

131
00:11:05,790 --> 00:11:09,400
Quindi se non hai parentesi allora dovrebbe essere un'espressione.

132
00:11:09,660 --> 00:11:16,880
E se hai le parentesi graffe puoi avere una o più affermazioni o nessuna dichiarazione come nell'esempio.

133
00:11:16,920 --> 00:11:20,340
Quindi questi sono alcuni esempi e indovina se è fonte di confusione.

134
00:11:20,400 --> 00:11:25,830
Ho appena guardato la conferenza ancora una volta e dovrebbe essere molto utile sotto di loro in una lezione

135
00:11:25,950 --> 00:11:27,250
che dovrebbe essere d'aiuto.

136
00:11:28,890 --> 00:11:31,220
Nozette menzionato prima dell'8 luglio.

137
00:11:31,310 --> 00:11:34,070
Le classi anonime hanno interpretato il ruolo di Lamanna.

138
00:11:34,350 --> 00:11:38,220
Quindi ora la domanda è quali sono le differenze tra loro due.

139
00:11:39,390 --> 00:11:46,380
Con una classe anonima si ha un oggetto associato e quindi c'è il sovraccarico del caricamento della classe ed

140
00:11:46,980 --> 00:11:53,550
è anche di Lobo come si usa la nuova parola chiave seguita dal nome del supertipo e anche

141
00:11:53,550 --> 00:12:02,070
i nomi dei metodi quando si definisce il ma con il Lambda che non è associato all'oggetto in quanto è implementato in modo diverso

142
00:12:02,760 --> 00:12:07,830
sotto di esso in base alla scheda di istruzioni bytecode nel gruppo dinamico.

143
00:12:08,040 --> 00:12:12,550
Quindi è più efficiente in quanto non dobbiamo creare un oggetto.

144
00:12:12,600 --> 00:12:19,080
Di fatto Brian va a sapere chi è il progettista del linguaggio Java ha anche menzionato il fatto che uno

145
00:12:19,490 --> 00:12:26,010
coinvolge le testate e si specifica il supporto che alcuni benchmark delle prestazioni fanno su come lambdas sia più efficiente dell'uso

146
00:12:26,040 --> 00:12:27,290
di oggetti anonimi.

147
00:12:28,070 --> 00:12:33,940
Un'altra parola che offre una rappresentazione più compatta senza il nuovo ordine delle parole chiave.

148
00:12:33,980 --> 00:12:43,210
Intendo o il nome del metodo e sappiamo che gli oggetti anonimi vengono creati su ogni utilizzo a meno che non

149
00:12:43,210 --> 00:12:47,450
vengano dichiarati come singleton usando la ricerca statica Alphaeus.

150
00:12:47,470 --> 00:12:54,590
Spero che ricordiate che la memoria di Lambastes non è localizzata solo una volta il contachilometri.

151
00:12:54,800 --> 00:12:59,980
Di qui pochissimo spazio di memoria usato con una classe anonima.

152
00:13:00,000 --> 00:13:05,940
Il tipo di destinazione può avere più metodi sul tipo di destinazione non è altro che una classe o

153
00:13:06,060 --> 00:13:08,980
un'interfaccia da cui la classe anonima sta ereditando.

154
00:13:09,240 --> 00:13:15,490
Questa è l'implementazione di classi anonime, ma con Londa deve essere un'interfaccia funzionale.

155
00:13:15,720 --> 00:13:20,520
Non può nemmeno essere una classe astratta con un unico metodo astratto.

156
00:13:20,520 --> 00:13:22,910
Questo sarà anche il mostro nella prossima lezione.

157
00:13:23,730 --> 00:13:27,590
Quindi queste sono le differenze tra le classi anonime su Lambda.

158
00:13:27,810 --> 00:13:33,910
Lambdas è più efficiente e più compatto e prenota con solo interfacce funzionali.

159
00:13:34,200 --> 00:13:35,320
Quindi questo è tutto.

160
00:13:35,340 --> 00:13:37,140
E nella prossima lezione lo faremo.

161
00:13:37,150 --> 00:13:38,760
Più di espressioni lambda.

162
00:13:38,910 --> 00:13:39,300
Grazie.
