AutoLISP, temel aritmetik işlemlerden karmaşık matematiksel hesaplamalara kadar geniş bir yelpazede işlev sunan dahili fonksiyonlara sahiptir. Bu fonksiyonlar, kullanıcıların çizim otomasyonu sırasında matematiksel hesaplamaları kolayca gerçekleştirmesine olanak tanır.
Ayrıca, AutoLISP'in esnek yapısı sayesinde, dilin dahili fonksiyonlarının yetersiz kaldığı durumlarda özel matematiksel işlemler için harici fonksiyonlar da geliştirilebilir.
Fonksiyonlara geçmeden önce AutoLISP dilinde kullanılan sayı türlerini görelim.
- Tamsayı (Integer)
AutoLISP'teki tam sayılar, -2,147,483,648 ile +2,147,483,647 arasında değer alan 32-bit işaretli sayılardır. Bazı fonksiyonlar ise yalnızca -32678 ile +32767 arasındaki 16-bit sayıları kabul eder.
(setq sayi 2147483648) ; Sonuç 2.14748e+009 ; Sayı integer sınırını aştığı için reel sayı. Bilimsel gösterim (setq sayi (expt 2147483648 -100)) ; Sonuç: 0.0 reel sayı ; Sıfıra yakın en küçük negatif sayı sınırını aştığı için 0.0 (setq sayi (fix 1.0e+308)) ; Sonuç: 1.0e+308 ; Sayı integer sayı sınırını aştığı için reel sayı olarak saklanır
- Reel (Ondalıklı) Sayı (Float)
AutoLISP'te sayılar dinamik olarak yönetilir, yani bir değişken hem tamsayı hem de reel sayı olabilir. Örneğin:
(setq sayi 5) ; Tamsayı(Integer) (setq sayi 3.14); Reel sayı(Float) (setq sayi 12.0); Reel sayı (setq sayi 15.); Reel sayı. Küsurat 0 ise noktadan sonra 0 yazılmayabilir. (setq sayi 1.0e-323) ; Sonuç: 9.88131e-324 (setq sayi 1.0e-324) ; Sonuç: 0.0 Sınırı aştığı için 0 (setq sayi 1.0e+308) ; Sonuç: 1.0e+308 (setq sayi 1.0e+309) ; Sonuç: inf.0 Sayı sınırı aştığı için sonsuz
Bu dinamik yapı, programcıya esneklik sağlarken, büyük veri setlerinde performans sorunlarına neden olabilir.
1) Temel Aritmetik Fonksiyonlar
a) Toplama. + fonksiyonu
(+ 1 2 3) ; Sonuç:6 (+ 20 -7) ; Sonuç:13 (+ 5 10.52 20.3 0.12) ;Sonuç: 35.94 (+ 1 2.0 3 4) ; Sonuç:10.0 (setq toplam (+ 12 34)) ;toplam = 46