Tag: lisp (26)
- Lisp
dydaktyka/lisp | Dodano: 31-03-2008 | Zmodyfikowano: 30-11-2010
Będąc na studiach razem z Kubą Dziwiszem oraz Gosią Sztokfisz przygotowaliśmy LISPouczek, czyli prosty samouczek języka LISP. Jest on opracowany na bazie dialektu Common LISP. W obecnej chwili wiem, że informacje zawarte w tym samouczku w niektórych miejscach nie są zbyt precyzyjne, tym...
dydaktyka | programowanie | lisp - Lekcja 25
dydaktyka/lisp/lekcja-25 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 24 25. Wejście/wyjście W LISP istnieje szereg struktur i instrukcji służących do obsługi szeroko rozmuianego wejścia/wyjścia. 25.1 Napisy Podstawową strukturą, która przechowuje zbiory liter jest napis. W LISP zapisujemy go przy pomocy tekstu ograniczonego...
lisp - Lekcja 24
dydaktyka/lisp/lekcja-24 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 23 | Lekcja 25 24. Struktury Struktury pozwalają na przechowywanie razem pewnych logicznie powiązanych informacji. Ściślej rzecz ujmując, pozwalają na przechowywanie elementów i ich atrybutów razem. Podobne są do struktur w C czy rekordów w Pascalu, ale posiadają...
lisp - Lekcja 23
dydaktyka/lisp/lekcja-23 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 22 | Lekcja 24 23. Drzewa Drzewa są zagnieżdżonymi listami. Istnieje wiele instrukcji operujących na listach w ogólności, ale przeważnie dokonują one zmian li tylko na najwyższym poziomie list. Istnieje kila instrukcji, które pozwalają dostać się do głębszych gałęzi...
lisp - Lekcja 22
dydaktyka/lisp/lekcja-22 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 21 | Lekcja 23 22. Tablice Tablice w LISP nie są listami, lecz osobnymi strukturami. Ich notacja poprzedzona jest znakiem #. Tak więc (1 2 3) jest listą składającą sięz 3 elementów, natomiast #(1 2 3) jest jednowymiarową tablicą składającą się również z trzech...
lisp - Lekcja 21
dydaktyka/lisp/lekcja-21 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 20 | Lekcja 22 21. Stosy Podobnie łatwo można manipulować listami, widząc je jako stosy. Stos, to struktura, która ma dwie funkcjie dostępowe – push i pop. Pierwsza z nich dodaje nowy element na wierzchołek stosu, druga zaś zdejmuje element z wierzchołka stosu,...
lisp - Lekcja 20
dydaktyka/lisp/lekcja-20 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 19 | Lekcja 21 20. Zbiory Na listach można również zaimplementować w łatwy sposób obiekty będące zwane zbiorami, charakteryzujące się tym, że zawierają nieuporządkowane kolekcje elementów występujących tylko raz. Tzn. dodanie kolejnego elementu, który jest równy w myśl...
lisp - Lekcja 19
dydaktyka/lisp/lekcja-19 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 18 | Lekcja 20 19. Notacja lambda W LISP zaimplementowana jest matematyczna notacja funkcji nosząca nazwę notacji lambda, wymyślona przez Alonzo Church’a. Notacja ta charakteryzuje się tym, że jasno w niej widać argumenty funkcji oraz operacje jakie na nich są...
lisp - Lekcja 18
dydaktyka/lisp/lekcja-18 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 17 | Lekcja 19 18. Równość obiektów W LISP zmienne można porównywać na kilka sposbów. Każdy kolejny przedstawiony predykat równości obiektów będzie prawdziwy, jeśli poprzednie predykaty też były prawdziwe dla zadanych zmiennych. Osobno omówiony jest predykat =, służący...
lisp - Lekcja 17
dydaktyka/lisp/lekcja-17 | Dodano: 30-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 16 | Lekcja 18 17. Argumenty opcjonalne. W praktyce programistycznej często zdarzają się sytuacje, w których wywołujemy pewne funkcje z tym samym zestawem pewnych argumentów. Zamiast pisać osobne funkcje przypadku, w którym wykorzystujemy tylko częśćargumentów oraz aby...
lisp - Lekcja 16
dydaktyka/lisp/lekcja-16 | Dodano: 29-11-2010 | Zmodyfikowano: 30-11-2010
Spis treści | Lekcja 15 | Lekcja 17 16. Listy asocjacyjne Wykorzystując listy łatwo można stworzyć strukturę zwaną listą asocjacyjną, w skrócie a-list. Lista asocjacyjna to lista, która zawiera elementy zwane wpisami. Każdy wpis też jest listą zawierająca klucz i jego wartość. Przykładowa...
lisp - Lekcja 15
dydaktyka/lisp/lekcja-15 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 14 | Lekcja 16 15. Wykonywanie następujących po sobie instrukcji Do wykonywania następujących po sobie instrukcji przydatne są formy postaci prog?. Różnią się one jedynie wartością, która jest przez nie zwracana, natomiast ich wykonanie jest identyczne, tzn. forma...
lisp - Lekcja 14
dydaktyka/lisp/lekcja-14 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 13 | Lekcja 15 14. Rekursja a iteracja W LISP istnieje kilka instrukcji (makr i form specjalnych) pozwalających wykonywać wielokrotnie ten sam fragment kodu. W tradycyjnym programowaniu służą do tego instrukcje iteracyjne oraz rekurencyjne wywołania pewnych funkcji....
lisp - Lekcja 13
dydaktyka/lisp/lekcja-13 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 12 | Lekcja 14 13. Jawne wywoływanie funkcji W LISP każda forma postaci (f list-arg) jeśli nie jest formą specjalną, traktowana jest jak wywołanie funkcji f z listą argumentów w postaci list-arg. Istnieją również inne sposoby wywoływania funkcji oraz w szczegolności...
lisp - Lekcja 12
dydaktyka/lisp/lekcja-12 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 11 | Lekcja 13 12. Zawężenie leksykalne i zmienne specjalne W LISP isntieją dwa typy zmiennych: zmienne zwykłe i specjalne. 12.1 Zmienne zwykłe Zmienne zwykłe charakteryzują się tym, że zakres ich widoczności jest leksykalny, tzn. można się do nich odwoływać...
lisp - Lekcja 11
dydaktyka/lisp/lekcja-11 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 10 | Lekcja 12 2. 11. Instrukcje warunkowe – IF, WHEN, UNLESS, CASE, COND IF LISP wyposażony jest również w specjalne formy dla wyrażeń warunkowych. IF jest najprostszą z nich. Specjalna funkcja IF bierze trzy argumenty: próba, prawdziwa część i fałszywa część. Jeśli...
lisp - Lekcja 10
dydaktyka/lisp/lekcja-10 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 9 | Lekcja 11 10. Funkcje logiczne NOT NOT jest ” przeciwieństwem” predykatów: zamienia tak z nie i nie z tak. W terminologii Lispa podanie na wejście NOT wartości T zwraca NIL, zaś podanie wartości NIL zwraca T. Ciekawą rzeczą jest fakt, iż możemy...
lisp - Lekcja 8
dydaktyka/lisp/lekcja-8 | Dodano: 27-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 7 | Lekcja 9 8. Drukowanie Niektóre funkcje mogą pisać na wyjście. Najprostszą jest PRINT, która drukuje swój argument i zwraca go. 8.1. (print 3) 3 => 3 Pierwsze 3 zostało wydrukowane, drugie zwrócone. Jeśli oczekujesz bardziej...
lisp - Lekcja 9
dydaktyka/lisp/lekcja-9 | Dodano: 29-11-2010 | Zmodyfikowano: 29-11-2010
Spis treści | Lekcja 8 | Lekcja 10 9. Predykaty Predykat jest funkcją zwracającą odpowiedź. Predykat zwraca symbol T kiedy ma na myśli tak i symbol NIL, kiedy odpowiedź znaczy nie. Predykat z poniższego przykładu orzeka, czy na jego wejściu jest numer. 9.1. (NUMBERP 2) ...
lisp - Lekcja 7
dydaktyka/lisp/lekcja-7 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 6 | Lekcja 8 7. Lista – przydatne funkcje II FIRST, SECOND, oraz THIRD Lisp dostarcza również pierwotnych funkcji dla wyciągania elementów z listy. Funkcje FIRST, SECOND, oraz THIRD zwracają kolejno pierwszy, drugi i trzeci element z listy podanej na ich...
lisp - Lekcja 6
dydaktyka/lisp/lekcja-6 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 5 | Lekcja 7 6. Lista – przydatne funkcje Wagonik to nazwa dla dwuelementowego rekordu. Z przyczyn historycznych jego pola są nazywane “car” i “cdr”. Ich użycie jest niezwykle proste: 6.1. Zaalokuj wagonik – ustaw car na 2, a cdr na...
lisp - Lekcja 5
dydaktyka/lisp/lekcja-5 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 4 | Lekcja 6 5. Definiowanie Funkcji Oto kilka przykładów funkcji: 5.1. ta funkcja pobiera dowolną liczbę argumentów (+ 3 4 5 6) => 18 (+ (+ 3 4) (+ (+ 4 5) 6)) => 22 5.2. definiowanie funkcji (defun foo (x y) (+ x y 5))...
lisp - Lekcja 4
dydaktyka/lisp/lekcja-4 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 3 | Lekcja 5 4. Set Quantity – setq i setf We wczesnych dialektach Lispa istniała tylko funkcja SETQ, zaś uogólnione zmienne były niedostępne. Obecnie funkcja SETQ jest nadal używana, jednak w nowszych wersjach programiści używają raczej podobnego znaczeniowo makra SETF,...
lisp - Lekcja 3
dydaktyka/lisp/lekcja-3 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 2 | Lekcja 4 3. EVAL – serce LISPa Funkcja EVAL jest sercem Lisp. Zadaniem EVAL jest ocenienie wyrażenia aby obliczyć jego skutek. Większość wyrażeń składa się z funkcji mający zbiór na wejściu. Jeśli dajemy do EVAL wyrażenie (+ 3 2), na przykład, to odwoła się...
lisp - Lekcja 2
dydaktyka/lisp/lekcja-2 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 1 | Lekcja 3 2. Elementy języka Na początku wyjaśnijmy podstawowe pojęcia: funkcja i dane. Terminem dana określa się informacje takie jak liczby, słowa lub listy rzeczy. Funkcje można porównać do pudełka, przez które wychodzą dane. Symbol – to każdy łańcuch znaków,...
lisp - Lekcja 1
dydaktyka/lisp/lekcja-1 | Dodano: 27-11-2010 | Zmodyfikowano: 27-11-2010
Spis treści | Lekcja 2 1. Zaczynamy Historia Początki Lispa sięgają 1956, kiedy to podczas spotkania naukowego Dartmouth College John McCarthy poznał technikę zwaną ‘‘list processing’’ wynalezioną przez Allen Newell, J. C. Shaw oraz H. Simon. Programowanie w latach 1950-tych opierało się...
lisp