LISP - podstawowa składnia
Podstawowe bloki konstrukcyjne w LISP
Programy LISP składają się z trzech podstawowych bloków konstrukcyjnych -
atom
list
string
Na atomto liczba lub ciąg ciągłych znaków. Zawiera cyfry i znaki specjalne.
Poniżej znajdują się przykłady niektórych prawidłowych atomów -
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
ZA list jest sekwencją atomów i / lub innych list umieszczonych w nawiasach.
Poniżej znajdują się przykłady niektórych prawidłowych list -
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
ZA string to grupa znaków ujęta w podwójne cudzysłowy.
Poniżej znajdują się przykłady niektórych prawidłowych ciągów -
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "
Dodawanie komentarzy
Symbol średnika (;) służy do wskazania wiersza komentarza.
Na przykład,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Point'! Learning LISP")
Kiedy klikniesz przycisk Wykonaj lub naciśniesz Ctrl + E, LISP wykona go natychmiast, a zwrócony wynik to -
Hello World
I am at 'Tutorials Point'! Learning LISP
Kilka ważnych punktów przed przejściem do następnego
Poniżej przedstawiono kilka ważnych punktów, na które należy zwrócić uwagę -
Podstawowe operacje numeryczne w LISP to +, -, * i /
LISP reprezentuje wywołanie funkcji f (x) jako (fx), na przykład cos (45) jest zapisywane jako cos 45
W wyrażeniach LISP nie jest rozróżniana wielkość liter, cos 45 lub COS 45 są takie same.
LISP próbuje ocenić wszystko, łącznie z argumentami funkcji. Tylko trzy typy elementów są stałymi i zawsze zwracają własną wartość
Numbers
Litera t, to oznacza logiczną prawdę.
Wartość nil, co oznacza logiczne fałsz, a także pustą listę.
Niewiele więcej o formularzach LISP
W poprzednim rozdziale wspomnieliśmy, że proces oceny kodu LISP obejmuje następujące kroki.
Czytelnik tłumaczy ciągi znaków na obiekty LISP lub s-expressions.
Ewaluator definiuje składnię Lisp formsktóre są zbudowane z s-wyrażeń. Ten drugi poziom oceny definiuje składnię, która określa, które wyrażenia s są formami LISP.
Teraz mogą być formularze LISP-a.
Atom
Pusta lub nie będąca listą
Każda lista, której pierwszym elementem jest symbol
Ewaluator działa jako funkcja, która przyjmuje prawidłową formę LISP jako argument i zwraca wartość. To jest powód, dla którego umieściliśmyLISP expression in parenthesis, ponieważ wysyłamy całe wyrażenie / formularz do oceniającego jako argumenty.
Konwencje nazewnictwa w LISP
Nazwa lub symbole mogą składać się z dowolnej liczby znaków alfanumerycznych innych niż spacje, nawiasy otwierające i zamykające, cudzysłowy podwójne i pojedyncze, ukośnik odwrotny, przecinek, dwukropek, średnik i kreska pionowa. Aby użyć tych znaków w nazwie, musisz użyć znaku zmiany znaczenia (\).
Nazwa może mieć cyfry, ale nie w całości składać się z cyfr, ponieważ wtedy byłaby czytana jako liczba. Podobnie nazwa może mieć kropki, ale nie może składać się wyłącznie z kropek.
Stosowanie pojedynczego cudzysłowu
LISP ocenia wszystko, łącznie z argumentami funkcji i członkami listy.
Czasami musimy wziąć atomy lub listy dosłownie i nie chcemy, aby były one oceniane lub traktowane jako wywołania funkcji.
Aby to zrobić, musimy poprzedzić atom lub listę pojedynczym cudzysłowem.
Poniższy przykład ilustruje to.
Utwórz plik o nazwie main.lisp i wpisz w nim następujący kod.
(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))
Kiedy klikniesz przycisk Wykonaj lub naciśniesz Ctrl + E, LISP wykona go natychmiast, a zwrócony wynik to -
single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6