More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Tarık Bağrıyanık'ın Tech...ProfileFriendsBlogMore Tools Explore the Spaces community

Tarık Bağrıyanık'ın TechnoLog'u

http://yunus.sourceforge.net
7/4/2008

Google'da Aramayın!

Tavsiye siteler:
6/30/2008

Lisp Örnekleri

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)))

6/28/2008

Lisp ve VB.NET Karşılaştırması – 6 ve Örnekler

Tüm liste bir dosya halinde bu adrestedir:

http://yunus.sourceforge.net/lispTr.html 

 

Bu arada Delphi3'de yapılmış bir Lisp çalıştırıcısı şu adrestedir:

http://www.augos.com/software/inflisp.html

 

` karakteri

‘ gibi ama içi çalışabilir

(setf isim ’Ahmet)

> `(,isim en çok kullanılanlardandır.)

;ekrana Ahmet en çok kullanılanlardandır. yazar

String.Format gibi

Kod derlemek

(defun ornekFunc (n)

      (dotimes (i n)

      (if (> (* i i) n) (return i))))

(compile ‘ornekFunc) ;~30 kat hızlı çalışır

Build*Build Application…

Makro yapmak

DefMacro

C dilindeki #define gibi

 

Örnekler:

(/ 120 3 5)

;120/3=40 ve 40/5=8 sonuç

'((BLUE SKY) (GREEN GRASS) (BROWN EARTH))

;iç içe listeler

(length '(nil nil))

;ekrana 2 yazar, nil de liste elemanıdır

(first (rest '((BLUE SKY) (GREEN GRASS) (BROWN EARTH))))

; (GREEN GRASS) yani ikinci eleman

(car (cdr '((BLUE SKY) (GREEN GRASS) (BROWN EARTH))))

; (GREEN GRASS) yani ikinci eleman

(cons 'hello '(dr jones))

;(HELLO DR JONES) birleşerek yeni liste oluştu

(list '(good morning) '(dr jones))

;((GOOD MORNING) (DR JONES)) yeni liste

(cons '(good evening) (rest (list '(good morning) '(dr jones))))

;((GOOD EVENING) (DR JONES)) ilk elemanı değiştirdi

'(A B C . A)

;liste nil ile bitmiyor, A ile bitiyor, aslında liste sonlarında . Nil vardır

'((A . B) (C . D))

;noktalı çiftler

(eval '(/ 120 3 5))

;ekrana 8 yazar

pi

;3.1415926535897931 sabit

(list 3 ’karesi (* 3 3))

; (3 KARESI 9) doğrudan hesaplama yapılıyor

(defun swaps (x) (list (second x) (first x)))

; Basic’deki Swap gibi

(swaps ’(dancing bear))

;(BEAR DANCING) yazar

(quote (hello world))

;(HELLO WORLD) ‘ tek tırnak yerine quote kullanılabilir

(defun my-abs (x) (if (< x 0) (- x) x))

kendi abs fonksiyonumuz

(my-abs -5)

;5 yazar

6/27/2008

Netten Alışveriş Yapmak

Fazlamesaideki bu (http://www.fazlamesai.net/index.php?a=article&sid=5039) haberden sonra gittiğim siteden 3 kitap aldım. https://dukkan.acikakademi.com/ de kitaplarda %50 indirim var.
İlk kez netten alışveriş yaptım. Verilen hesap numarasına havale göndermek yeterli. Üyelik de kredi kartı da gerekmiyor.
Aslında uzun süredir fatura ödeme, havale, EFT yapma ve yatırım (döviz, fon) işlemlerini bankanın kendi arayüzü içinde yapıyordum. Ama bunlar alışveriş sayılmaz.
Aynı ilde MNG kargo ile gelen kitaplar sipariş verdiğim andan 20 saat sonra kapımda idi. Şaşırdım bu kadar çabuk gelmesine. Temiz iş... Ama her zaman böyle hızlı ve güvenli olur mu bilemem. Hatalı ürün çıkma ihtimali var. Geri ödeme, iade...
Gelen kitaplar güzel çeviri yapılmış. Tavsiye ederim.
6/24/2008

Lisp ve VB.NET Karşılaştırması - 5

 

Dosya okuma yazma

With-Open-File

:direction :output ;kaydetme parametresi

FileStream

FileOpen

Listeye değer eklemek çekmek

(setf bulaşık nil)  ;boş bir yığın

(push ’tabak1 bulaşık) ;bulaşık yığınına tabak ekler

(pop bulaşık) ;son ekleneni yığından siler

DirectX komutlarında Push ve Pop vardır

Döngü komutları

(Dotimes|Dolist (indeks-değişkeni n [sonuç-formu]) kodlar)

For, Do Loop, While

Döngüden çıkmak

Return

Exit For

Kod tamamlanma süresi

(Time fonksiyonAdi())

 

Değişken tipi sorgulama

(Typep değişken ‘tür)

(Typep 3 ‘integer) ;ekrana T yazar

(Type-of değişken)

(Type-of “deneme”) ;ekrana String yazar

(Describe|Inspect değişken)

TypeOf değişken Is tür

Yapı

DefStruct

C# struct

Dizi yapımı ve elemanlarına ulaşma

(setf diziAdi ’#(deneme müzik 440 a))

(aref diziAdi elemanNo)

Dim diziAdi(4)

diziAdi(2)

Metinlerde karakterlere ulaşma

(setf isim “Tekir”)

(setf (aref isim 0) #\B)

isim ;ekrana Bekir yazar

Dim isim As [String] = "Tekir"

isim = isim.Replace("T"c, "B"c)

MsgBox(isim)

Özellik (property)

(setf (get ‘adam ‘yaş) 23)

(symbol-plist ’adam)

; (SYSTEM:PNAME "ADAM" YAŞ 23)

(get ‘adam ‘yaş)  ;ekrana 23 yazar

(describe ‘adam) ;ekrana adam’ın özellikleri gelir

(remProp ‘adam ‘yaş) ;yaş özelliği silinir

Sınıf konusu

Değer artırmak azaltmak

(setf yaş 10)

(incf yaş)    ;11

(decf yaş)   ;10

Dim yaş as integer = 10

yaş +=1

yaş -=1

View more entries