Press "Enter" to skip to content

Monad – FunFunFunction #21


buon lunedì mattina sono MP J e questo è
divertente funzione di divertimento oggi ci accingiamo a
esplorare monadi monadi è un tipo di funzione
porta quindi devi sapere che cosa è un funtore
è prima di guardare questo episodio o è
non ha senso per fortuna lì
è un divertente episodio di funzione per quello
che puoi guardare qui un disclaimer a
molto del materiale là fuori sul
interwebs parlando di monadi è molto
schizzinoso nei dettagli parlando del
leggi esatte di Monad e come è la monade
implementato in haskell e penso che
farlo con quel livello di dettaglio e
la correttezza ti causerà di non farlo
vedi la foresta per tutti gli alberi così
non lo faremo in questo video
invece ho intenzione di provare a fare si ottiene
un senso di ciò che è il Moana e come
è usato quindi il nostro obiettivo è qui
fai in modo che la Monade non tenti di ottenere
ogni dettaglio giusto perché puoi imparare
più tardi una volta che avrai ottenuto la Monade
quindi cos’è un Moana
ti ricordi che è il functor
Qualcosa che implementa Mac è una monade
un funtore più potente che anche
implementa la flatmap che è la cosa principale
riguardo al Moana che pone la domanda
che diavolo è flatmap
ciò che è flatmap è buono per ciò che è piatto
sulla mappa piatta prima di arrivare a quello che sono
andando a mostrarti un po ‘di codice
che utilizza flussi nel caso in cui non si è
familiare con i flussi c’è un handli
episodio che puoi guardare qui
usando bacon js come libreria di streaming
in questo esempio, ma i flussi sono flussi
tutte le librerie di streaming hanno simili
funzionalità che vedi in questo video
per esempio si applica a rxjs o
Altopiano o
davvero qualsiasi altra libreria di streaming che
sarà scritto fammi solo eseguire questo a
mostrarti cosa emette e iniziamo
da lì in modo che emetta la farina di gatto e
tromba anche online qui stiamo creando
un autobus che è il tipo più basilare di
bacon urlando jazz on line sette otto
e nove spingiamo un paio di parole su
il flusso
queste parole sono stampate qui da questo
console dot log che si trova all’interno di questo
funzione che viene passata come callback
funzione alla funzione di valore di
il flusso e questa funzione è chiamata
ogni volta che viene emessa una parola su
flusso ogni volta che chiamiamo push
assolutamente niente di strano da fare qui
nell’episodio Stream lo abbiamo imparato
i flussi sono func tour e questo significa
che possiamo mapparli facciamolo così
maiuscolo ogni parola prima di stamparla
mappare il punto della parola in maiuscolo BAM e corriamo
quel taglio trionferà alla grande che è molto
utile nel mondo delle imprese, ma facciamolo
Diciamo che vogliamo usare Google
Traduci le API per tradurre queste parole
per nota portoghese sarò
parlare in Brasile è il mondo
la più grande conferenza JavaScript di agosto
cancelliamo questo codice per ora e andiamo
scrivere una funzione che traduca a
una sola parola in portoghese usando Google
Traduci le API come un buon chef televisivo che ho
preparato del codice se si guarda al
le ultime due righe qui vedete che chiamiamo
prendi il portoghese con una parola e poi quello
restituirà un flusso che chiamiamo
su valore e passare una richiamata che
stamperà ogni parola facciamolo
jefes yeah il mio portoghese è timido il codice
usi
per fare una richiesta di ottenere a Google
Traduci API se non ti è ancora familiare
con come recuperare i lavori che ho collegato a
buon articolo nella descrizione che
ti aggiornerà
fetch restituirà una promessa ES6 ma noi
stiamo lavorando con bacon js nella nostra app così
vogliamo che la nostra funzione restituisca un bacon
flusso possiamo realizzare questo passando
la nostra promessa di bacon dalla promessa che
restituirà un flusso di pancetta che noi
successivamente restituito come ritorno
valore della funzione in modo che il flusso lo farà
essere restituito da questa funzione ora e
chiediamo valore su di esso con una richiamata
parola e viene stampato ora proviamo
legare questo insieme al bus che
avevamo prima che volessi cancellare questo
andando ad aggiungere alcune righe qui andiamo
creare un flusso dalla rottura sulle obbligazioni diamo
spingere alcune parole e vogliamo stampare
questi valori fuori così ho intenzione di andare
flusso e poi chiameremo punto
mappa e per ogni mappa che vogliamo fare
ogni parola mappa va bene e noi vogliamo
chiamare ottenere in portoghese per quella parola e
quando riprendiamo il valore da ciò che noi
vuoi console non loggare la parola
facciamolo e vediamo cosa succede
whoops
sembra che la mappa ci stia dando il
i singoli elementi del flusso è la mappa
dandoci questo e questo non è quello che noi
volevamo che volessimo tradurre le parole
funtore e mappa ci hai deluso
è dove la monade entra nella nostra storia
ancora una volta Monade è un funtore più potente
che ha anche una mappa flatmap piana funziona
proprio come la mappa
ma appiattirà anche i flussi
restituire i valori contenuti all’interno di
flussi così se cambiamo il codice qui a
usa la mappa piatta anziché la mappa per vedere cosa
succede che otteniamo due RFA come
ufficiale e Trombetta dalla camera da letto beta
non è così bello
quale mappa piatta fa è che ci vorrà
il flusso di ritorno qui da serbatoio che
viene da ottenere portoghese e it
aspetterò questo al suo risultato
sai appiattirlo nella sua vera parola
valore lo farà appiattire il flusso
nel valore di parola contenuta e poi
lo passerà al proprio valore
richiamata qui fammi tornare alla mappa
per un secondo solo per darti come a
prova generale e corriamo con test noti sì
che ci restituisce i flussi e
questo è perché ora qui entra
Portoghese che restituirà flussi e
la mappa li prenderà e li passerà sopra
per il valore direttamente non eseguirà
l’appiattimento dei flussi poi andiamo
torna alla mappa piana ed eseguila di nuovo
appiattirà i flussi nei valori
contenuto all’interno dei flussi che potresti
ho sentito che alcune persone lo dicono
le promesse sono monadi ma qui sto dicendo
che ah monadi sono cose che implementano
mappa piatta e promesse che non hanno
mappa piatta fanno bene lo fanno in realtà
non è solo chiamato mappa piatta, lo è
chiamato allora e questo è uno di quelli
cose che fanno sembrare le monadi un po ‘di più
complicato di quanto loro siano in realtà
la mappa piatta ha molti nomi, altri nomi
che si potrebbe avere sentito o legare e
catena, ma è la stessa idea è il
stessa implementazione sei tu
nomi diversi che puoi effettivamente vedere
questo in azione nel recupero
implementazione qui risposta dot Jason
qui questo in realtà non restituisce un an
oggetto letterale che potresti aspettarti di no
questo restituirà una promessa che poi
appiattirà nel suo valore l’analizzato
oggetto e lo passerà a
il callback del prossimo poi quale
è questo
risposta così analizzata qui questa volontà non lo è
una promessa più questa è stata ora
appiattito nell’oggetto letterale che è
nel modo in cui lo vogliamo e quindi possiamo chiamare
le sue proprietà ed estratto individuali
la parola tradotta qui ora torna al
ruscello
ricorda che i flussi sono funtori quindi noi
possiamo mapparli facciamolo e noi solo
chiamiamo una parola al boom delle maiuscole, scappiamo
che come mostrare sintonia con de gato così dentro
riassunto una monade è un funtore come il flusso
per esempio che implementa la mappa piana in
Oltre alla mappa che tutti i funtori
implementa la mappa piatta ha lo stesso
principio come mappa con l’eccezione di
se il callback è passato alla mappa piana
restituisce una monade dello stesso tipo te
sapere se streaming se chiamiamo in piano sulla mappa
lo stream restituisce lo stream monad that
flusso monade sarà appiattito nel suo
contenente il valore prima che sia passato
ed è per questo che possiamo chiamare la mappa
direttamente su questo e e ottenere un piano
parola che possiamo mettere in maiuscolo qui
tutto quello che ho
questo video ha senso per te
questo video farvi ottenere ciò che una monade
Molto probabilmente farò un seguito a
questo video quindi per favore pubblica le tue domande
e confusioni in basso e ci proverò
affrontare il
prossimo video che sarebbe davvero
aiutami se lo facessi parlare di
quale non perdere quell’episodio lunedì
mattina
Oh 800 GMT se non avete voglia di
aspettando così a lungo puoi dare un’occhiata a questo
playlist qui con tutto il divertimento divertente
funzione episodi e vedere se qualcosa
solletica la tua fantasia nel tempo
Sono mvj questa è divertente funzione fun fino
Il prossimo lunedì mattina resta curioso
Please follow and like us: