1
00:00:08,220 --> 00:00:09,110
Ciao.

2
00:00:09,210 --> 00:00:16,470
Questo è il giorno in cui Vienneau non interrompe che Djala è un linguaggio di programmazione orientato agli oggetti e sa molto bene

3
00:00:16,470 --> 00:00:22,950
come la programmazione orientata agli oggetti aiuta a moderare gli scenari del mondo reale in un modo più naturale.

4
00:00:23,010 --> 00:00:23,780
Destra.

5
00:00:23,910 --> 00:00:30,240
Ma c'è anche un paradigma di programmazione per adulti chiamato linguaggi di programmazione funzionale come la

6
00:00:30,300 --> 00:00:37,800
programmazione funzionale di Lisp Solander e la programmazione funzionale è tutta una questione di programmazione usando funzioni che è

7
00:00:37,810 --> 00:00:40,200
metodo visto sulla terminologia Jawa.

8
00:00:40,260 --> 00:00:47,070
La programmazione funzionale è spesso definita FP, così come la programmazione orientata agli oggetti ci

9
00:00:47,070 --> 00:00:56,610
viene indirizzata e SB aiuta a scrivere codice compatto più codice Buckcherry su codice che è facilmente parallelizzabile, ma potrebbe non

10
00:00:57,520 --> 00:01:03,110
essere buono come un linguaggio OOP nell'implementazione di scenari del mondo reale.

11
00:01:03,430 --> 00:01:05,140
Ma hanno i loro vantaggi.

12
00:01:05,200 --> 00:01:10,950
Come ho appena affermato, riuscire a scrivere compatte Backley non è parallelizzabile bene.

13
00:01:11,110 --> 00:01:18,400
E sembra che siano molto bravi a scrivere compilatori, ma i paradigmi hanno i loro vantaggi,

14
00:01:18,400 --> 00:01:26,230
quindi sappiamo come linguaggi come Karla sono multi-paradigma in cui puoi sfruttare la migliore programmazione orientata agli oggetti

15
00:01:26,350 --> 00:01:28,200
e alla programmazione funzionale.

16
00:01:28,790 --> 00:01:36,340
Quindi, anche i designer lo realizzano e lo rendono possibile e Java 8 introducendo costrutti

17
00:01:36,340 --> 00:01:39,420
di programmazione funzionale come i lambast.

18
00:01:39,430 --> 00:01:45,530
Finora stiamo solo analizzando le primitive su riferimenti o metodi di oggetti, ma Java 8.

19
00:01:45,580 --> 00:01:52,880
È anche possibile passare le funzioni come argomenti ai metodi e all'interno di tali metodi è possibile utilizzare due funzioni.

20
00:01:53,630 --> 00:01:59,990
Alcuni per i costrutti di programmazione che impareremo in questo capitolo ci consentono di

21
00:02:00,280 --> 00:02:10,190
scrivere un codice più compatto ed efficiente su tale livello può anche aiutarci molto facilmente a sfruttare il parallelismo in un sistema multi-core.

22
00:02:10,190 --> 00:02:15,650
Quindi in questo capitolo Viver apprende le nuove funzionalità del linguaggio di programmazione

23
00:02:15,650 --> 00:02:22,730
funzionale e quindi questa particolare conferenza imposterà la scena guardando alcuni dei costrutti di programmazione funzionale che ci

24
00:02:22,820 --> 00:02:25,420
permettono di scrivere codice più elegante.

25
00:02:25,580 --> 00:02:28,140
Ok, quindi è tutto finito in tribunale.

26
00:02:28,310 --> 00:02:34,490
Quindi capiremo la motivazione alla base dell'apprendimento delle nuove funzionalità invece di imparare semplicemente la

27
00:02:34,490 --> 00:02:37,830
sintassi senza comprendere il loro vero scopo.

28
00:02:38,110 --> 00:02:45,920
OK, quindi andiamo avanti e cominciamo con il capitolo come ho detto prima dell'8 luglio.

29
00:02:46,100 --> 00:02:51,280
Sai che solo le primitive e le differenze tra oggetti possono essere passate come argomenti.

30
00:02:52,560 --> 00:02:59,930
Ma dall'8 luglio in poi anche il comportamento potrebbe essere passato a noi argomento che possiamo passarlo sulla

31
00:02:59,970 --> 00:03:01,290
funzionalità di Metford.

32
00:03:01,500 --> 00:03:02,480
E questo è possibile.

33
00:03:02,520 --> 00:03:09,910
Siamo allarmati e anche un qualcosa chiamato abbondanza di metadati in questo senso dall'8 luglio in poi le metriche

34
00:03:09,950 --> 00:03:16,970
sono anche considerate come cittadini di prima classe in precedenza solo i primitivi ei riferimenti agli oggetti

35
00:03:17,000 --> 00:03:20,110
erano considerati come cittadini uguali a tutti.

36
00:03:20,150 --> 00:03:23,510
Qui stiamo parlando di funzioni come argomenti.

37
00:03:23,630 --> 00:03:26,410
Possiamo anche avere metodi che restituiscono funzioni.

38
00:03:26,660 --> 00:03:27,530
OK.

39
00:03:27,560 --> 00:03:30,770
Ora anche prima dell'8 luglio sarebbe passata la funzionalità.

40
00:03:30,770 --> 00:03:38,780
Ma sappiamo che era via oggetti soprattutto istanze di classi anonime ma le classi anonime sono un po

41
00:03:38,780 --> 00:03:45,630
'di quelle ad esempio consideriamo questo esempio ritualistico e dalla nostra discussione di classi anonime

42
00:03:45,630 --> 00:03:52,370
qui un oggetto anonimo viene passato come concorrente per il costruttore di creazione.

43
00:03:52,740 --> 00:04:01,030
In modo che Chrisette possa andare su ordinamento nugget 8 luglio possiamo avere questo tipo di una parola in codice o

44
00:04:01,120 --> 00:04:04,330
un'espressione lambda viene utilizzato al posto dell'oggetto anonimo.

45
00:04:04,360 --> 00:04:10,980
Parliamo della sintassi per ora ma stiamo essenzialmente passando il corpo del comparatore.

46
00:04:11,350 --> 00:04:17,920
Quindi non abbiamo la nuova parola chiave o il concorrente o la stringa o le firme del metodo comparato.

47
00:04:18,570 --> 00:04:26,830
Come potete vedere, è molto più compatto e più pulito ed è anche efficiente, quindi la compattezza e l'efficienza sono uno

48
00:04:26,830 --> 00:04:29,250
dei vantaggi dell'uso di lambda.

49
00:04:29,290 --> 00:04:29,790
OK.

50
00:04:31,660 --> 00:04:37,700
Ora guardiamo un altro bellissimo su un esempio più convincente sulla necessità di un programma di stile

51
00:04:37,730 --> 00:04:38,340
funzionale.

52
00:04:39,230 --> 00:04:45,470
Diamo una lista di libri e vogliamo prima filtrarli per rating e poi raggrupparli

53
00:04:45,470 --> 00:04:46,680
per Carrigan.

54
00:04:46,890 --> 00:04:47,100
OK.

55
00:04:47,120 --> 00:04:51,540
Quindi vogliamo raggrupparli per categoria in quanto non inizieranno in una mappa come questa.

56
00:04:51,710 --> 00:04:57,510
La chiave è essere d'accordo sui valori sarebbe un elenco di libri che rientrano in quella categoria.

57
00:04:57,730 --> 00:04:58,170
OK.

58
00:04:59,870 --> 00:05:02,210
E questo è uno schema tipico che viene utilizzato.

59
00:05:02,470 --> 00:05:07,680
Qui stiamo scambiando con tutti i libri e stiamo solo applicando il filtro.

60
00:05:07,780 --> 00:05:09,750
In questo caso sta piovendo.

61
00:05:09,790 --> 00:05:16,210
Maggiore o uguale a 4. 5 della scritta è maggiore o uguale sul sito, quindi

62
00:05:16,420 --> 00:05:22,710
tutti saliamo in macchina per toglierlo dal libro e stiamo verificando se abbiamo già aggiunto tutti i libri con quella categoria in

63
00:05:22,720 --> 00:05:23,080
basso.

64
00:05:24,040 --> 00:05:32,410
Se non fosse ancora Ardit, la lista dei libri qui sarà disponibile su soby initialiser con MBA, e poi abbiamo aggiunto la

65
00:05:32,640 --> 00:05:35,400
mappa come valore per quella categoria.

66
00:05:35,590 --> 00:05:39,240
E finalmente abbiamo il libro nella lista dei libri appena creati.

67
00:05:39,790 --> 00:05:45,160
Ma se ci sono già uno o più libri che ho fatto per quella categoria, la

68
00:05:45,260 --> 00:05:49,430
condizione if fallirebbe e il libro verrà semplicemente aggiunto alla lista esistente.

69
00:05:49,480 --> 00:05:55,880
Questo è uno schema tipico quando raggruppiamo le cose per alcuni che non siamo e vediamo come le caratteristiche di Djala che

70
00:05:55,960 --> 00:05:57,280
hanno semplificato il punteggio.

71
00:05:58,830 --> 00:06:05,920
Quindi ecco lo stesso codice riscritto usando Dunois otto figure qui stiamo usando lo stream qui stiamo

72
00:06:05,930 --> 00:06:10,790
invocando per la prima volta un metodo chiamato stream sui libri.

73
00:06:11,130 --> 00:06:12,560
Ora lo stiamo cambiando.

74
00:06:12,600 --> 00:06:15,660
E non importa in posizione chiamato Filtro.

75
00:06:16,080 --> 00:06:23,660
Che fondamentalmente i filtri sono libri con meno di 4 voti. 5 alla fine del codice scritto una mappa con

76
00:06:24,030 --> 00:06:26,660
i libri raggruppati per categoria.

77
00:06:26,950 --> 00:06:34,210
OK, quindi qui il criterio di filtraggio è un'espressione lambda un'espressione usata per il raggruppamento è un argomento

78
00:06:34,210 --> 00:06:43,100
di riferimento in quanto puoi vedere che la corte è ancora una volta compatta e pulita ed efficiente per mettere l'espressione lambda ei

79
00:06:43,100 --> 00:06:46,380
miei buoni amici stanno aiutando in questo aspetto.

80
00:06:46,370 --> 00:06:52,130
D'accordo sarebbe stato maldestro e difficilmente avrebbe usato un gloss anonimo.

81
00:06:52,300 --> 00:06:59,050
Ora questo stile di programmazione in cui stiamo ordinatamente incatenando le cose è chiamato s programma dichiaratore

82
00:06:59,050 --> 00:06:59,590
qui.

83
00:06:59,590 --> 00:07:02,290
Non ci interessa come vengono gestite le cose.

84
00:07:02,290 --> 00:07:10,240
Sotto tutto ciò che facciamo è specificare quale parte fa le query che riguardano quando si tratta di database.

85
00:07:10,270 --> 00:07:12,410
Segui anche tale dichiarazione.

86
00:07:14,150 --> 00:07:20,680
Nella parte orientale che abbiamo qui si parla di programmazione imperativa, quindi di

87
00:07:20,680 --> 00:07:24,600
una terminologia per te che incontrerai spesso.

88
00:07:24,680 --> 00:07:32,090
Ora la cosa buona è che se si sostituisce un flusso con il metodo flusso Parlow, allora ci sarà

89
00:07:32,210 --> 00:07:35,860
la parallelizzazione dell'intero calcolo utilizzando un corso multiplo.

90
00:07:36,110 --> 00:07:38,020
Quindi avremmo un calcolo più veloce.

91
00:07:38,360 --> 00:07:41,660
Quindi è facile renderlo appetibile.

92
00:07:41,900 --> 00:07:48,020
E questo sfruttamento del parallelismo è così facile se è davvero un grande vantaggio usare fuori

93
00:07:48,860 --> 00:07:56,180
dagli stream in modo da poter vedere da questo esempio come possiamo scrivere codice più elegante usando le funzionalità dell'8

94
00:07:56,240 --> 00:08:00,480
luglio su vediamo cosa impareremo in questo particolare capitolo .

95
00:08:00,500 --> 00:08:03,120
Quindi questi sono gli argomenti principali di cui parleremo.

96
00:08:03,170 --> 00:08:05,780
Comincerà imparando a lambda.

97
00:08:05,990 --> 00:08:12,620
In seguito impareremo le interfacce funzionali come lambdas funziona con le sole interfacce di funzione

98
00:08:12,620 --> 00:08:20,320
e come parte di quel grande aspetto di alcune nuove interfacce come la funzione di predicato consumatore e fornitore.

99
00:08:20,420 --> 00:08:27,150
Poi impareremo a conoscere i riferimenti di Muntari e infine impareremo a conoscere il flusso sul sovra acquisto.

100
00:08:27,170 --> 00:08:31,750
Potrei aggiungere alcune cose nuove come le migliori pratiche su cose del genere.

101
00:08:32,060 --> 00:08:33,190
Quindi questo è tutto.

102
00:08:33,200 --> 00:08:37,800
Spero che la motivazione per la funzione di scrittura sia ancora più chiara.

103
00:08:37,880 --> 00:08:41,390
Ora possiamo saltare su specifiche Lunga.

104
00:08:41,410 --> 00:08:41,850
OK.

105
00:08:41,930 --> 00:08:43,610
Grazie e arrivederci alla prossima lezione.
