Haskell

Haskell 13: Podwójne listy Zamierzone

20 filmy

111 minuty

Hello World Jak się czujesz? Nazywam się Józef i ja przyjmuję ten nowy kurs Haskell samouczek, gdzie dowiemy się dzisiaj, jak połączyć Zamierzone różnych listach. Tak dobrze po obejrzeniu strukturę listy umyślne w poprzednim filmie. Dziś będziemy zobaczyć trochę jak możemy zrobić, aby połączyć kilka. Tak więc, po pierwsze, tworzę tu moją listę

i wytłumaczę trochę jak połączenie. Struktura jest taka sama jak zawsze, już widzieliśmy, uh, rozstał się z tym poziomym pasku i tu, oto lista, a następnie przecinek stan, a następnie chcemy pokazać; i widział w tym przez cały ten czas, co będzie, jeśli umieścimy listę tu wcześniej, bo tu stawiamy dwie listy. Na przykład, będę tworzyć listy,

, Które elementy wywoła X a tu co tworzę są wszystkie numery od 1 do 20, na przykład a ten drugi list, będę musiał teraz tutaj są numery od 1 do 100 i ta lista, numery zadzwonią z litery Y. Włożyłem więc to z tej samej strukturze, ze strzałką. ?, No, co ja tu mamy?, To muszę z jednej strony listę od 1 do 20 z X

a drugi od 1 do 100 z Y. I teraz tutaj i kładę warunki, co mogę zrobić, to: podejmują pierwszą listę X pod warunkiem, że X jest mniejsza niż 10; więc włożę gdy X jest mniejsza niż 10, więc weźmiemy 1 do 9 az drugiej strony, z przecinkami, odrębnych warunkach, z drugiej strony, ja złapać Y, liczby są podzielne przez 10; to znaczy 10, 20, 30, 40,

tylko ci nic więcej niż wielokrotność 10, więc będę umieścić tu więc reszta 10 jest 0, dzięki czemu są wielokrotnością 10. I zrobię tu teraz, gdy mam to, dodam X + Y; więc będzie zatem od 1 do 10 będę 11 1 do 20 będę 21, 1 do 30, 31. Jest to, jak wychodzę, biegnę, Hej, przykro mi tutaj brakuje, oddzielając ten element, a teraz, gdy biegnę

Te dwie listy, są one oddzielone przecinkiem aby rozdzielić listę drugą, a teraz, kiedy listy istnieją, co wam powiedziałem, zanim 1 z 10, 21 ... 11; 1 z 20, 21; 1 do 30, 31 do 40, a nawet do 90 ° C i aż do 100, 101. Teraz, 2 ponieważ one trasie tej listy, to jest 1 do 10, 1 z tej listy X i 10 na tej liście, wówczas Y

A teraz, kiedy już przeszedł wszystko 1'S, 2 i ruszamy się, 2 raz, ze wszystkimi elementami Y'S, 2 do 10, 12; 2 do 20, 22; i ze wszystkimi 2, a potem zaczęliśmy od 3 roku, zaczęliśmy catorces. Tak dalej aż do 9; przyjechaliśmy tu, tu jesteś, prawda? Tak, dobrze, to jest to sposób na połączenie listę z innymi, jest kwestia oddania każdą listę oddzielonych przecinkami;

Nie tak jak przedtem, oddzielone przecinkiem, nazwać je i ustalić warunki, a to co robimy z tych elementów na liście? Jest to bardzo proste dobra w tym przykładzie, a następnie, zrobiłem ta operacja może nie mieć wiele logiki, ale to, aby zobaczyć; nie zrozumiesz. Więc co teraz zrobimy to, jak widzieliśmy proste zamierzone wykazów oraz list kombinacje. Cóż, zobaczmy trochę logiki

mają te rzeczy i możemy z nim zrobić, na przykład, tutaj w tym pliku Haskell.hs; albowiem tworzę ... ja ... będziemy rozwijać funkcja, która oblicza nam długość listy, to tu, to już wiesz, jak to jest: gdybym tu umieścić długość listy, I tu dostać jest w sumie 90 sztuk; jeśli dodać wszystkie numery, które zostały zrobione z 90 elementów.

Więc mamy zamiar zrobić nam określoną funkcję; opracowane przez nas, powiedz nam ile przedmiotów ma listę. Co się dzieje? Jesteś tu po uruchomieniu ten lub inny wykaz celowe, widzieliśmy, widzieliśmy w poprzednich filmach, jako przykłady, I zawsze wracał, zawsze jest to lista, tutaj go zobaczyć, kości, celowe zwróci listę listę.

Więc tutaj, stworzymy funkcję, która będzie wywoływana Długość że otrzymują jako parametr listę logicznie, a teraz będą musieli powiedzieć Tak jak wiele elementów są na tej liście; to w jaki sposób to zrobić? Więc pomyślmy trochę. Mówimy że wszystkie zamierzone lista me zwraca listę, tak, że jeśli kładę strukturę tu i otrzymać listę, które otrzymuję,

wszystkie elementy z listy, zadzwonię XY teraz tutaj, zamiast displayX, który pokaże się dla każdej pozycji, zamiast wyświetlania X, pokażę to 1. Dobrze? Tak więc, bez względu na to, co mamy, mają zamiar się wszystkiego na 1; W rzeczywistości, zróbmy tu przykład; jeśli mogę umieścić również tutaj, i umieścić 1 ... Uh ... wykazu; Kładę tutaj tak że wyznaczyć X

a teraz, że będziemy musieli opuścić dziewięćdziesiąt jeden, bo jeśli będziemy widzieli, że istnieją dziewięćdziesiąt elementy, każdy element będę produkować 1, masz to prawda? Dziewięćdziesiąt jeden'S, okay? Więc teraz z tym, co potrwa 1, każdy element da mi 1, w przypadku korzystania z funkcji tutaj widzieliśmy już w poprzednim filmie, operacje z listami zabawy ... jeśli tu umieścić pewną kwotę, co robię, jest to, że; Każdy z tych elementów sumy

A co da mi?, Ponieważ suma wszystkich elementów, kości, powiem ile przedmiotów tam. Ponieważ będzie dodać 90 1, w Odejdę 90, która jest długość każdego z nich. Tak, to, jeśli trzymam go tutaj i tutaj ładować plik Haskell.hs, Przepraszam; Jest tylko jeden punkt z dwoma Eles. Haskell.hs, a teraz mogę skompilować długość rozmowy, ja tutaj ... zobaczysz, mam tutaj wymienione;

Hej, przepraszam, będziemy tworzyć listę, która będzie wszystkie elementy, które idą od 1 do 30; Pokażę tutaj i to wszystko. Następnie, zadzwonię funkcję długości ... a ja przekazać listę jako parametr. Mam wykaz i długość podając, 30 zadzwoń; czyli co, jeśli zrobiłem długość listy to jest 30, która jest taka sama, ale to, co zrobił było stać wszystkie te elementy w jeden na

dla każdego elementu i dodać je do 1 dołączył do mnie, co?, No cóż, jest to sposób łączenia rzeczy, które widzieliśmy wcześniej, zobaczymy kolejny przykład, co teraz tutaj. Zmieńmy tę funkcję, zróbmy kolejną funkcję, która nazywa się, nie lepsze mostrarVocales i wydać wyrok i co tu zrobić, to tylko, występów wokalnych, a jedynie umieścić tutaj, otrzymując karę, a teraz co mamy do zrobienia?

Jak pokażemy, będziemy umieścić tutaj strukturę iść trochę oglądania tej sekwencji. Więc tutaj złapiemy frazę a każdy element w zdaniu tej liście, każdy element, będziemy nazywać nas, dobrze? Więc co zrobimy to, będą wyświetlane tylko przedmioty, tak pismo równa lub jakiegokolwiek innego stanu, nie ma przebaczenia, przebaczenie, list należy do listy samogłosek: a, e, i,

Kładę dobrze, żeby wyglądało, o oraz u. Przed pójściem do zrobienia, jeśli liter jest równa lub równa litery e, jest równa i, ale to nie jest możliwe, ponieważ pismo nigdy nie będą równe dla wszystkich, więc muszę zrobić to w ten sposób, prawda? Jeśli mogę umieścić tutaj jako warunek, List, równa i innych warunków, które spełnia także, również tych warunkach równych e list. Gdy nie jest to możliwe, ponieważ nigdy

Będą one w stanie spełnić wszystkie te warunki lub jedno lub innej; więc to, bym zrobił, zanim zdałem sobie sprawę, że było źle, To musi być w ten sposób, prawda? Tucking, sprawdzenie tego listu należy do tej grupy, do tej listy, a teraz pokażemy; to po prostu jest, list. List, który spełnia ten warunek, więc cała fraza, litera po literze, analizować, co jest wokalnych i wokalno pokazano,

Będę zapisywać tu opłaty plików i wyskakuje mi błąd. Tak, dobrze, to widzę, że ... to, że błąd może tu być; ah już tu nie umieścić przecinek do oddzielenia oddzielić to, to teraz tak, ja utrzymać ładunek, a teraz będę bez problemu, a teraz mamy zamiar wywołać tę funkcję mostrarVocales i dobrze, że powiedział, że muszę przekazać listę, prawda? Więc może przekazać listę jak dobrze, że mamy do czynienia.

Mogę również przekazać listę i uzyskać O i A, ale pamiętaj, że ciągi tekstowe są uważane już jak sam list. Więc, jeśli mogę umieścić tutaj: witaj świecie, tylko dlatego, że muszę napisać wszystkie uchwyty, pakowane cudzysłowów mnie samogłosek. O, A, U i O znowu, dobrze? Więc z tej funkcji, która została właśnie utworzona, a następnie można uzyskać samogłosek, mogę dostać, ile istnieją spółgłoski,

ile liter jest litera A, litera B, który może wszystko zrobić dobrze? Jeśli powiem tutaj, niech zdanie, które mnie bierze, ile liter są C. I tu dać przeładować a teraz pokazać, dobrze, heh; mostrarVocales nie nazwiemy, to wezwanie, mostrarC, to ja tutaj wtedy, co mogę zrobić, to ładowania; Mówię mostrarC i podał jedno zdanie: dom jest drogie, posiada dwa dobrze? Odejdę dwie prawe?

Więc teraz, co można zrobić, to połączyć się trochę z tego, co zrobiliśmy wcześniej, prawda? Tak, teraz mogę zrobić tu kolejna funkcja, która jest wywoływana sumarC, jest równa listy. Cóż, to, co robię, jest to, że funkcja ta odbiera ... A, łańcuch, łańcuch C C na i co mogę zrobić, to włożyć, tak jak robiliśmy to wcześniej, każdy element będziemy stać się jednym, a tu mamy zamiar zrobić, to zadzwonić mostrarC

przekazując jako parametr Zdanie to prawda? Więc jeśli mogę umieścić tutaj mostrarC i kontrolować frazę prawda? Co byś zrobił, jest w tym przypadku sumarC zadzwonić, przekazując zdanie, przekazując samą karę. Więc to zdanie mostrarC, to zdanie, gdy piłki mostrarC, Wrócę jedyne łańcuchy filtrándome; Wrócę przefiltrowany ciąg tylko C, a teraz ten element każdego łańcucha,

gdybym tutaj; każdy element łańcucha, convierto; Zadzwonię X, aby połączyć w jakiś sposób i stał się jednym, a ja Podsumowując, powiem wam, ilu C'S, ma frazę. I ta opłata opłata Ja tu i teraz muszę zrobić, to zadzwonić sumarC i włożę: dom jest drogie i dostaję, że dwa C rozumieją? To znaczy, mamy tutaj zrobić dwie rzeczy: po prostu zwraca listę,

z C-tych, że istnieją takie prawo?, aw drugiej, co możemy zrobić, to co zrobiliśmy wcześniej, używamy tego pojęcia, przekształcić to w jednym i dodać je; i tak wiemy, ilu C ma. Mogę to zrobić dla każdej litery, czy nie?, powiedzmy, I nie zmieni nazwy na kary, funkcji, ale nawet jeśli powiesz sumarC, ale hej, to będzie zrobić to tak, jakby fueranA's¿No?

I to tu, robimy co następuje, ten położył ładunek, a teraz idziemy, nawet sumarC, ale faktycznie policzyć ile jest. I tu stawiam: Mam jabłko, które jest bardzo bogaty. Istnieje Wiele użytkownika: 1, 2, 3, 4, 5, 6. dam i mówi mi, że mam, ujrzeli sześć jest. Cóż, jest to, jak połączyć, uh, widzieliśmy, jak połączyć różne listy zamierzone na początku filmu

i jak celowe wymienia funkcje i dopasować ze sobą funkcji, aby przejść się różne rzeczy; chcesz osiągnąć. Mam nadzieję, że będziesz cieszyć te filmy są bardzo ciekawe, i zobaczyłem trochę, że struktura Haskell, jest nie tyle na podstawie zmiennych ale mają ciężar informacji leży z funkcjami i trzeba sprawdzić jak ponowne jednej funkcji do innego

spełniać co mamy dążyć. Cóż, mogą dać podobny, subskrybowania i udostępniać te filmy, Mam nadzieję, że im się podoba, a ujrzymy następujące zagadnienia tutoriale. Przesyłam pozdrowienia.

Aby znaleźć nowe kursy, zapisz. Nie będzie spam, obiecał :)

o autorze

foto de jotajotavm
José Javier Villena

Biografia: Analityk-Programmer w różnych językach. Platformy Opiekun PREMIUM rozpoznawane na całym świecie jako CodigoFacilito. Artykuły Edytor Cristalab. Mój kanał YouTube jest sponsorowany przez wydawcę Anaya LaTostadora. Lubię szczegółowo wyjaśnić i podać kilka przykładów dla uniknięcia wątpliwości.