Lovinglisp – LispBook.pdf’den alıtı: http://www.woodpecker.org.cn:9081/doc/lisp/lovinglisp 

 

(defvar *kedi* "cat")

; global bir string tanımlama

(format t "~%~%test result is ~A~%~%" (toplam x y))

;ekrana biçimlendirilmiş olarak göstermek ~% alt satır ~A değer

(setq dizi (make-array ‘(3)))

;#(NIL NIL NIL) 3 elemanlı bir dizi açar

(aref dizi 2)

; ekrana 3. elemanı getirir (diziler 0 tabanlıdır)

(setf (aref dizi 1) "this is a test")

; dizinin 2. elemanına değer atama, setq ile yapılamaz

(defvar |a symbol with Space Characters| 3.14159)

;sembol adında | simgesi ile boşluk kullanılabilir

(defvar s1 "the cat ran up the tree")

;bir string

(concatenate ‘string s1 " up the tree")

;s1 ve space metinleri ile “up the hill” birleştirildi

(search "ran" s1)

; string içinde arama yapıldır 8 dönüş değeri olur

(subseq s1 8 11)

; s1 stringi içinden 3 karakter alır

(string-upcase "The dog bit the cat.")

; “THE DOG BIT THE CAT." Büyük harfe çevirir

(string-downcase "The boy said WOW!")

; "the boy said wow!" küçük harfe çevirir

(char s1 0)

; ilk harfi döndürür #t yazar

(defun test (a &optional b (c 123))

   (format t "a=~A b=~A c=~A~%" a b c))

;b ve c parametreleri opsiyoneldir

(test 1)

;ekrana a=1 b=NIL c=123

(test 1 2)

;ekrana a=1 b=2 c=123

(funcall ‘+ 1 2)

;ekrana 3 yazar, funcall ilk parametresi işlem sonrası işlem parametreleridir

(dolist (x ‘("the" "cat" "bit" "the" "rat")) (print x))

;döngü yapıyoruz "the" "cat" "bit" "the" "rat" NIL yazar

(dotimes (i 3 "all-done-with-test-dotimes-loop") (print i))

;ekrana 0 1 2 "all-done-with-test-dotimes-loop" yazar

(do ((i 0 (1+ i))) ((> i 3) "value-of-do-loop") (print i))

;  0 1 2 3 "value-of-do-loop" yazar

 

(defun DosyaOkumaTesti ()

  "read a maximum of 1000 expressions from the file ‘test.dat’"

  (with-open-file (input-stream "test.dat" :direction :input)

     (dotimes (i 1000)

         (let ((x (read input-stream nil nil)))

         (if (null x) (return)) ;; break out of the ‘dotimes’ loop

         (format t "next expression in file: ~S~%" x)))))

 

(defun DosyaYazmaTesti()

  (with-open-file (out-stream "test1.dat"

:direction :output

:if-exists :supersede)

(print "the cat ran down the road" out-stream)

(format out-stream "1 + 2 is: ~A~%" (+ 1 2))

(princ "Stoking!!" out-stream)

(terpri out-stream)))