Haskell Składnia funkcji.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Funkcje w PHP ABK.
Język C/C++ Funkcje.
Programowanie obiektowe
Wzorce.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Prowadzący: mgr inż. Elżbieta Majka
Algorytmy – zapis struktur programowania
Programowanie I Rekurencja.
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
FUNKCJE INFOMACYJNE KOMÓRKA CZY.ADAR KOMÓRKA CZY.ADAR NR. BŁĘDU CZY.TEKST NR. BŁĘDU CZY.TEKST INFO L INFO L CZY. PUSTA BRAK CZY. PUSTA BRAK CZY. BŁ TYP.
Projektowanie i implementacja programów obsługujących gniazdka Wykład II Zbigniew Brożbar Paweł Baranowski.
27/09/ Języki programowania 1 Piotr Górczyński Instrukcje warunkowego wyboru.
Instrukcje warunkowe Zajęcia 5.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Wirtotechnologia – Funkcje Grupa: 1A
XML. Pierwszy dokument XML Witaj świecie! Elementy i atrybuty niezwykle oryginalny Witaj świecie! Druga możliwość: Witaj świecie!
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Podstawy programowania PP – WYK3 Wojciech Pieprzyca.
Podstawy programowania PP – LAB4 Wojciech Pieprzyca.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Podprogramy.
Podstawy programowania
Instrukcje sterujące część 1
Podstawy programowania
Programowanie strukturalne i obiektowe
TABLICE C++.
Wyrażenia w Turbo Pascalu.
ANNA BANIEWSKA SYLWIA FILUŚ
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie strukturalne i obiektowe
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
STEROWANIE Ale nie tylko
C# Platforma .NET CZ.3 Kuba Ostrowski.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Spis treści W świecie algortmów -Budowa algorytmu
Składnia instrukcji warunkowej if…
Matematyka i system dwójkowy
ZAPIS BLOKOWY ALGORYTMÓW
Materiały pochodzą z Platformy Edukacyjnej Portalu
Algorytmy- Wprowadzenie do programowania
Instrukcje wyboru.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
PHP Zmienne Damian Urbańczyk. Czym są zmienne? Zmienne zajmują pewien obszar pamięci, aby przechować pewne dane. W przypadku PHP, zmienne stosuje się.
Krakowski Piotr, Woliński Radosław, Kowalski Piotr, Machowski Michał.
Haskell. Dopasowanie do wzorca Jest to operacja, gdzie pewnie wyrażenie sprawdza się ze wzorcem, w którym może znajdować się jedno lub więcej "wolnych.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Listy Listy w Prologu mogą przechowywać dane dowolnego typu [alpha,beta,gamma,delta] [1,2,3] Sama lista również może zawierać listę: [[a,list,within],a,list]
Rozdział IV Wyrażenia proceduralne algorytmów Grzegorz Gacek Patryk Gajewski.
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Łączenie php z formularzami. Na początek uruchamiamy Xampp.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Wykład 4 Dr Aneta Polewko-Klim
Types and Typeclasses Syntax in Functions
Rekurencja - Haskell Bartosz Pawlak Sebastian Żółtowski Adam Stegenda Krystian Sobótka Tomasz Gołębiewski.
Typy wyliczeniowe, kolekcje
Rozdział 5 REKURENCJA.
Functors, Applicative Functors and Monoids
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Haskell Składnia funkcji

Prosta funkcja To jest prosta funkcja, która przyjmuje na wejście argument a i zwraca String. Pierwsza linia funkcji to jest jej deklaracja. Gdzie najpierw występuje nazwa funkcji potem typ argumentu a i na końcu typ zwracanej wartości. Druga i trzecia linia działają jak instrukcja warunkowa if.

Switch Ta konstrukcja jest równoważna ze switch znanym z innych języków. Program przechodzi przez wszystkie wszystkie linie i sprawdza zgodność. Ostatnia instrukcja jest odpowiednikiem default czyli jeżeli w poprzednich liniach komputer nie znajdzie dopasowania to zostanie wykonana ostatnia instrukcja. W Haskell każda funkcja musi zwrócić wartość.

Rekurencja w Haskell Niżej jest podana funkcja obliczająca silnie. Druga linia to jest warunek końcowy, a trzecia jest po prostu wzorem silni. Oczywiście że szczegółowe warunki powinny znaleźć się na początku funkcji, a później bardziej ogólne.

Nieobsłużone argumenty funkcji Niżej mamy funkcje charName która w zależności od podanego argumenty zwraca String. W tej funkcji są obsłużone tylko trzy wartości 'a', 'b', 'c' Sprawdzimy jak funkcja charName działa dla argumentów 'a', 'b', 'h'. Funkcja musi zwracać jakąś wartość, dlatego na końcu należałoby dodać instrukcję wyłapująca wszystkie możliwe wartości.

Krotki Jako argumenty funkcji również możemy wykorzystywać krotki. Napiszmy funkcje która doda nam dwa wektory. Taka funkcja na wejście będzie przyjmować dwie pary współrzędnych X i Y(czyli dwie krotki). Niżej jest implementacja z użyciem funkcji pomocniczych fst i snd które zwracają odpowiedni pierwszy i drugi element krotki. Również przy implementacji takiej funkcji możemy korzystać bezpośrednio ze składni Haskell, wtedy implementacja naszej funkcji będzie wyglądać następująco

PATTERN MATCHING  Przy implementacji funkcji może się zdarzyć że w jakiejś linii nas interesuje tylko jeden konkretny argument. W takim przypadku możemy na miejsce nie interesującego nam argumentu napisać '_', wtedy haskell potraktuje to jako dowolną wartość. Niżej są podane funkcje first, second i third które zwracają odpowiedni pierwszy, drugi i trzeci element krotki.

Operacje na listach Haskell ma wbudowaną funkcje 'head' która zwraca pierwszy element listy. Teraz my mając do dyspozycji 'PATERN MATCHING' możemy napisać własną implementacje tej funkcji

Operacje na listach Kolejna prosta funkcja, która zwróci nam dwa pierwsze elementy listy (zwraca komunikat jeśli lista jest pusta lub krótsza)

Operacje na listach Implementacja funkcji length z użyciem PATERN MATCHING i rekurencji Jeśli funkcja zostanie wywołana pustej liście to zwróci 0. W przypadku gdy lista jest nie pusta funkcja wywoła samą siebie i jako argument użyje ogon przekazanej listy .

Operacje na listach Implementacja funkcji sum z użyciem PATERN MATCHING i rekurencji Ta funkcja jest nie co podobna do funkcji length, lecz tym razem wykorzystujemy  w obliczeniach pierwszy element listy

Guards Guards jest to również konstrukcja bardzo podobna do switch. Gdzie na początku wskazujemy na zmienną którą będziemy porównywać, a potem opisujemy cases w zależności od wartości zmiennej

Guards Inny prosty przykład wykorzystania konstrukcji guards przy implementacji funkcji do obliczenia wartości maksymalnej

Where Konstrukcja where będzie wykonana przed konstrukcją guards i zdefiniuje każdą stałą która jest wykorzystywana w guards

Where Konstrukcja where tak samo jak konstrukcja guards ma zapis krótki

Let Podobne w działaniu do where jest let. Where na końcu funkcji łączy wyrażenie ze zmiennymi.(widoczne jest w całej funkcji). Let również łączy wyrażenie ze zmienną, ale działa bardzo lokalnie ( nie jest widoczne w całej funkcji).

Case Case w haskell jest bardzo podobny do case w innych językach programowania, różni się składnią oraz tym że wynik działania case możemy odrazu zapisać do zmiennej

Case Składnia Wyrażenie jest porównywane ze wzorem,a gdy pasuje podawany jest wynik. Jednak gdy żaden wzór nie będzie pasował do wyrażenia, wówczas pojawi się błąd wykonania.

Dziękuje za uwagę