Forum » Programiranje » Programski jezik Lisp
Programski jezik Lisp
LadyKate ::
mislim, da je tako:
( defun dolzina_seznama(seznam)
( cond
;;ce je seznam prazen vrnemo 0
((null seznam) 0)
;; drugace je dolzina enaka 1+dolzina repa
(t (+1 (dolzina_seznama(cdr(seznam)))))
)
)
Lp, LadyKate
( defun dolzina_seznama(seznam)
( cond
;;ce je seznam prazen vrnemo 0
((null seznam) 0)
;; drugace je dolzina enaka 1+dolzina repa
(t (+1 (dolzina_seznama(cdr(seznam)))))
)
)
Lp, LadyKate
house ::
A bi kdo znal v lispu napisati funkcijo, ki opravi razliko dveh seznamov, recimo:
(razlika '(a b c d) '(b d f g)) = (a c)
(razlika '(a b c d) '(b d f g)) = (a c)
OwcA ::
(defun diff-list (a b &optional result) (if (null a) result (diff-list (cdr a) b (if (member? (car a) b) result (cons (car a) result))))) (defun member? (a l) (cond ((null l) nil) ((eql a (car l)) t) (t (member? a (cdr l)))))
Otroška radovednost - gonilo napredka.
64202 ::
Offtopic, ampak dober štos: Heker je nekega dne vdrl v vojaški sistem in mu je uspelo spizditi zadnjih 100 strani lisp kode za nek zelo kompliciran sistem. Težava - bili so sami zaklepaji.
I am NaN, I am a free man!
lukanium ::
Še en offtopic, se opravičujem... samo je res smešno. :)
Iz Wikipedie (med drugim seveda) o sintaksi Lispa:
... The heavy use of parentheses in S-expressions has been criticized – some joke acronyms for Lisp are "Lots of Irritating Superfluous Parentheses", "Lets Insert Some Parentheses", or "Long Irritating Series of Parentheses" ...
Iz Wikipedie (med drugim seveda) o sintaksi Lispa:
... The heavy use of parentheses in S-expressions has been criticized – some joke acronyms for Lisp are "Lots of Irritating Superfluous Parentheses", "Lets Insert Some Parentheses", or "Long Irritating Series of Parentheses" ...
When a person can no longer laugh at himself,
it is time for others to laugh at him. [Thomas Szasz]
it is time for others to laugh at him. [Thomas Szasz]
desperados ::
ja ja programski jeziki stari dobri cajti:)
edina stvar ki sem jo pozabil čez noč -> lisp
edina stvar ki sem jo pozabil čez noč -> lisp
upirna ::
Pa zakaj se Lisp sploh uporablja(se mi ne da googlat)?
[to sporočilo bo spremenil upirna, kadar bo to njemu pasalo]
Zgodovina sprememb…
- spremenil: upirna ()
OwcA ::
Zakaj Lisp? Recimo zato:
Enostavno je to najmočnejši programski jezik.
hours (compared to a range of 2 to 8.5 hours for the other Lisp programmers in the study, 3 to 25 for C/C++ and 4 to 63 for Java) and I ended up with 45 non-comment non-blank lines (compared with a range of 51 to 182 for Lisp, and 107 to 614 for the other languages). (That means that some Java programmer was spending 13 lines and 84 minutes to provide the functionality of each line of my Lisp program.)
Enostavno je to najmočnejši programski jezik.
Otroška radovednost - gonilo napredka.
64202 ::
lisp ma dobre kompajlerje (za razliko od pythona), ampak nobenih knjižnic (za razliko od pythona )
I am NaN, I am a free man!
Sergio ::
OwcA: Lisp je tocno tok 'mocan' kot ASM za Motorolo HC11 .
Ce si pa nasel en problem, v katerem ti Lisp dela bolje, good for you. :)
Ce ze isces programski jezik kjer moras paziti na razliko med deklerativnim in semanticnim pomenom, se igraj s Prologom.
Ce si pa nasel en problem, v katerem ti Lisp dela bolje, good for you. :)
Ce ze isces programski jezik kjer moras paziti na razliko med deklerativnim in semanticnim pomenom, se igraj s Prologom.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
OwcA ::
Moč je bila mišljena v smislu izrazne moči v rokah človeka, programerja, ampak saj oba veva, da sva se že prej kristalno jasno razumela.
Res ne vem zakaj bi raje posegel po Prologu, večino kar napišem v Lispu je čisto funkcijsko programiranje ob izdatni uporabi makrov, Prolog ne podpira ne enega, ne drugega.
Res ne vem zakaj bi raje posegel po Prologu, večino kar napišem v Lispu je čisto funkcijsko programiranje ob izdatni uporabi makrov, Prolog ne podpira ne enega, ne drugega.
Otroška radovednost - gonilo napredka.
64202 ::
Prolog podpira higher-order "funkcije", en preprost primer kako spravit "kodo" v spremenljivko vred s curryingom.
adder(X, Y): Y = plus(X).
?- adder(5, A), apply(A, [2, Y]).
A = plus(5)
Y = 7
Yes
?-
Higher-order logic programming in Prolog - Naish (ResearchIndex)
Je pa res, da sem tole sprobal na swi prologu, glede na članek prolog včasih ni imel apply, ampak bolj omejen call.
adder(X, Y): Y = plus(X).
?- adder(5, A), apply(A, [2, Y]).
A = plus(5)
Y = 7
Yes
?-
Higher-order logic programming in Prolog - Naish (ResearchIndex)
Je pa res, da sem tole sprobal na swi prologu, glede na članek prolog včasih ni imel apply, ampak bolj omejen call.
I am NaN, I am a free man!
64202 ::
Evo še en malo bolj resen prikaz, kaj lahko počnes v prologu, razbiješ en "izraz" na klic + parametre in se potem poljubno špilaš:
gu(A,B,C,D) :- D is A+B+C.
gu2(A,X) :- X = gu(A).
?- gu2(5, X), X=..[Y|P], Z=..[Y,3|P], apply(Z, [2, Q]).
X = gu(5)
Y = gu
P = [5]
Z = gu(3, 5)
Q = 10
Yes
?-
gu(A,B,C,D) :- D is A+B+C.
gu2(A,X) :- X = gu(A).
?- gu2(5, X), X=..[Y|P], Z=..[Y,3|P], apply(Z, [2, Q]).
X = gu(5)
Y = gu
P = [5]
Z = gu(3, 5)
Q = 10
Yes
?-
I am NaN, I am a free man!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Odpiranje Symbiana se je začelo (strani: 1 2 )Oddelek: Novice / Nokia / Symbian | 8470 (5761) | jype |
» | Programski jezik D tudi za MaceOddelek: Novice / Ostala programska oprema | 3733 (2399) | hamax |
» | Znati programirati?!Oddelek: Programiranje | 1984 (1649) | 64202 |
» | [C++] Program, ki se popravi, prevede ter ponovno zaženeOddelek: Programiranje | 2273 (2071) | OwcA |