web counter


https://www.amazon.it/dp/B0CT9YL557

We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Porównanie dialektów Lispa - Wikipedia, wolna encyklopedia

Porównanie dialektów Lispa

Z Wikipedii

Lisp nie jest jednym językiem programowania, lecz całą rodziną różniących się czasem znacznie języków.

Najbardziej odbiegającym od tradycji Lispowej jest Scheme.

Spis treści

[edytuj] Podstawowe stałe symboliczne

Stałe które występują w każdym Lispie to prawda, fałsz i lista pusta.

[edytuj] Scheme

  • Prawda - #t
  • Fałsz - #f
  • Lista pusta - ()

[edytuj] Common Lisp i Emacs Lisp

  • Prawda - t
  • Fałsz - nil
  • Lista pusta - nil, można używać też ()

[edytuj] Definicje

W Scheme istnieje tylko jeden rodzaj nazw obejmujący stałe i funkcje oraz zmienne "zwykłe" i zmienne funkcyjne. W Common Lispie i Emacs Lispie funkcje i stałe traktowane są inaczej.

Dla przykładu zdefiniujmy stałą 2π oraz funkcję wyższego rzędu która przekazaną funkcję aplikuje na argumentach 2 i 3.

[edytuj] Scheme

(define two_pi 6.28318)
(define (apply2_3 f) (f 2 3))
 
(/ two_pi 3.14159)
;; 2.0
(apply2_3 +)
;; 5
(apply2_3 >)
;; #f

[edytuj] Common Lisp

Istnieją osobne systemy definiowania funkcji i definiowania stałych. Funkcje przekazywane jako argumenty trzeba poprzedzić #'

(defconstant two_pi 6.28318)
(defun apply2_3 (f) (funcall f 2 3))
 
(/ two_pi 3.14159)
;; 2.0
(apply2_3 #'+)
;; 5
(apply2_3 #'>)
;; nil

[edytuj] Emacs Lisp

(defconst two_pi 6.28318)
(defun apply2_3 (f) (funcall f 2 3))
 
(/ two_pi 3.14159)
;; 2.0
(apply2_3 #'+)
;; 5
(apply2_3 #'>)
;; nil

[edytuj] Operacje na listach

We wszystkich dialektach jest możliwe posługiwanie się podstawowymi operacjami:

  • Konstruktor listy pustej: ()
  • Konstruktor listy z pary głowa ogon: (cons głowa ogon)
  • Bezpośrednia konstrukcja listy: '(element1 element2 element3 element4)
  • Pobranie głowy: (car lista)
  • Pobranie ogona: (cdr lista)

Zdefiniowane są też zwykle kombinacje dwóch do czterech car i cdr postaci, czytane z prawej do lewej, np.:

  • (cadr '(1 2 3))
  • (car (cdr '(1 2 3)))
  • (car '(2 3))
  • 2

Różnią się one traktowaniem listy nie zawierającej wystarczająco dużo argumentów - w Scheme jest to błąd, w Common Lisp i Emacs Lisp zwracany jest nil.

W Common Lisp i Emacs Lisp istnieją też aliasy:

  • first, równy car - pierwszy element listy
  • second, równy cadr - drugi element listy
  • third, równy caddr - trzeci element listy
  • itd., aż do tenth

[edytuj] Funkcje logiczne

W Scheme dość konsekwentnie stosuje się zasadę kończenia funkcji zwracających wartości logiczne znakiem zapytania:

(equal? 3 4)
;; #f
(equal? 4 4)
;; #t

Czego nie robi się w innych omawianych Lispach:

(equal 3 4)
;; nil
(equal 4 4)
;; t

Pytania o typ w Scheme kończą się również znakiem zapytania:

(number? "cztery")
;; #f
(number? 4)
;; #t

Natomiast w innych Lispach literą p:

(numberp "cztery")
;; nil
(numberp 4)
;; t

[edytuj] Funkcje anonimowe i mapowanie list

Funkcje anonimowe tworzy się za pomocą lambdy i stosuje jak normalne funkcje:

(lambda (x) (+ x 1))
 
((lambda (x) (+ x 1)) 2)
;; 3

Do mapowania w Scheme służy funkcjonał map:

(map (lambda (x) (+ x 1)) '(1 2 3))
;; (2 3 4)

W innych Lispach zaś mapcar:

(mapcar (lambda (x) (+ x 1)) '(1 2 3))
;; (2 3 4)
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com