-
domanda per sassofono/lispariScritto daNon Autenticatoil 2008-10-14 23:10:00.0 alle 2008-10-14 23:10:00.0voglio aggiungere un elemento alla fine di una lista nel modo più efficiente.
Ho trovato questa:
(nconc lst (cons elem nil))
c'è di meglio?
-
Re: rispostaScritto dail 2008-10-14 23:25:00.0 alle 2008-10-14 23:25:00.0Trollate totali: 10> c'è di meglio?

Ci sono io!-
-
Re: rispostaScritto daNon Autenticatoil 2008-10-14 23:30:00.0 alle 2008-10-14 23:30:00.0
- Scritto da:
>
> - Scritto da: Posta con la passera
> > > c'è di meglio?
> >
> > Ci sono io!
>
>
> come sempre
>
> purtoppo
non dirmelo, dopo aver visto quest'ultimo personaggio sto valutando l'acquisto di un martello per frantumarmi da solo-
Re: rispostaScritto daNon Autenticatoil 2008-10-14 23:31:00.0 alle 2008-10-14 23:31:00.0
- Scritto da:
>
> - Scritto da:
> >
> > - Scritto da: Posta con la passera
> > > > c'è di meglio?
> > >
> > > Ci sono io!
> >
> >
> > come sempre
> >
> > purtoppo
>
> non dirmelo, dopo aver visto quest'ultimo
> personaggio sto valutando l'acquisto di un
> martello per frantumarmi da
> solo
i ciglioni-
Re: rispostaScritto daNon Autenticatoil 2008-10-14 23:54:00.0 alle 2008-10-14 23:54:00.0
- Scritto da:
>
> - Scritto da:
> >
> > - Scritto da:
> > >
> > > - Scritto da: Posta con la passera
> > > > > c'è di meglio?
> > > >
> > > > Ci sono io!
> > >
> > >
> > > come sempre
> > >
> > > purtoppo
> >
> > non dirmelo, dopo aver visto quest'ultimo
> > personaggio sto valutando l'acquisto di un
> > martello per frantumarmi da
> > solo
> i ciglioni
un suicidio collettivo
magari
-
-
-
-
-
Re: domanda per sassofono/lispariScritto daavvelentaniCubicolarioil 2008-10-15 07:33:00.0 alle 2008-10-15 07:33:00.0Trollate totali: 18184
- Scritto da:
> voglio aggiungere un elemento alla fine di una
> lista nel modo più
> efficiente.
>
> Ho trovato questa:
>
> (nconc lst (cons elem nil))
>
> c'è di meglio?
In generale no.
Le liste del lisp sono semplici e attaccare un elemento in fondo e` un'operazione costosa.
Nel caso particolare dipende:
a) se puoi fallo con una combinazione di map/remove/reduce
b) se puoi fallo con la macro LOOP
c) l'idioma lisp per costruire una lista e` costriurla all'inverso (appendendo in cima) e nreverse alla fine.
d) implementati una "deque":(defun make-deque (list) (cons list (last list))) (defun addone-deque (deque el) (let ((n (list el))) (nconc (cdr deque) n) (setf (cdr deque) n)))
(questo codice non gestisce il caso di liste vuote)I think happiness is love
- Vladimir Putin-
Re: domanda per sassofono/lispariScritto daNon Autenticatoil 2008-10-15 08:32:00.0 alle 2008-10-15 08:32:00.0> fallo
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
-
Re: domanda per sassofono/lispariScritto daNon Autenticatoil 2008-10-15 08:37:00.0 alle 2008-10-15 08:37:00.0
- Scritto da: avvelentani
>
> - Scritto da:
> > voglio aggiungere un elemento alla fine di una
> > lista nel modo più
> > efficiente.
> >
> > Ho trovato questa:
> >
> > (nconc lst (cons elem nil))
> >
> > c'è di meglio?
>
> In generale no.
>
> Le liste del lisp sono semplici e attaccare un
> elemento in fondo e` un'operazione costosa.
>
>
> Nel caso particolare dipende:
>
> a) se puoi fallo con una combinazione di
> map/remove/reduce
>
> b) se puoi fallo con la macro LOOP
>
> c) l'idioma lisp per costruire una lista e`
> costriurla all'inverso (appendendo in cima) e
> nreverse alla
> fine.
>
> d) implementati una "deque":
>
>> (defun make-deque (list) (cons list (last list))) > > (defun addone-deque (deque el) > (let ((n (list el))) > (nconc (cdr deque) n) > (setf (cdr deque) n))) >
>
> (questo codice non gestisce il caso di liste
> vuote)
ok. bazzicando in internet ho trovato questa
http://pastebin.com/m2f36c7c0
magari stasera la adatterò al mio problema-
Re: domanda per sassofono/lispariScritto daavvelentaniCubicolarioil 2008-10-15 09:01:00.0 alle 2008-10-15 09:01:00.0Trollate totali: 18184
- Scritto da:
>
> - Scritto da: avvelentani
> >
> > - Scritto da:
> > > voglio aggiungere un elemento alla fine di una
> > > lista nel modo più
> > > efficiente.
> > >
> > > Ho trovato questa:
> > >
> > > (nconc lst (cons elem nil))
> > >
> > > c'è di meglio?
> >
> > In generale no.
> >
> > Le liste del lisp sono semplici e attaccare un
> > elemento in fondo e` un'operazione costosa.
> >
> >
> > Nel caso particolare dipende:
> >
> > a) se puoi fallo con una combinazione di
> > map/remove/reduce
> >
> > b) se puoi fallo con la macro LOOP
> >
> > c) l'idioma lisp per costruire una lista e`
> > costriurla all'inverso (appendendo in cima) e
> > nreverse alla
> > fine.
> >
> > d) implementati una "deque":
> >
> >> > (defun make-deque (list) (cons list (last
> list))) > > > > (defun addone-deque (deque el) > > (let ((n (list el))) > > (nconc (cdr deque) n) > > (setf (cdr deque) n))) > >
> >
> > (questo codice non gestisce il caso di liste
> > vuote)
>
> ok. bazzicando in internet ho trovato questa
>
> http://pastebin.com/m2f36c7c0
>
> magari stasera la adatterò al mio problema
Mi pare che faccia una cosa simile a quella che faccio io sopra (ammetto di aver dato un'occhiata molto veloce), usalo pure.
I think happiness is love
- Vladimir Putin
-
-
Re: domanda per sassofono/lispariScritto daNon Autenticatoil 2008-10-15 08:41:00.0 alle 2008-10-15 08:41:00.0
- Scritto da: avvelentani
>
> - Scritto da:
> > voglio aggiungere un elemento alla fine di una
> > lista nel modo più
> > efficiente.
> >
> > Ho trovato questa:
> >
> > (nconc lst (cons elem nil))
> >
> > c'è di meglio?
>
> In generale no.
>
> Le liste del lisp sono semplici e attaccare un
> elemento in fondo e` un'operazione costosa.
>
>
> Nel caso particolare dipende:
>
> a) se puoi fallo con una combinazione di
> map/remove/reduce
>
> b) se puoi fallo con la macro LOOP
>
> c) l'idioma lisp per costruire una lista e`
> costriurla all'inverso (appendendo in cima) e
> nreverse alla
> fine.
>
> d) implementati una "deque":
>
>> (defun make-deque (list) (cons list (last list))) > > (defun addone-deque (deque el) > (let ((n (list el))) > (nconc (cdr deque) n) > (setf (cdr deque) n))) >
>
> (questo codice non gestisce il caso di liste
> vuote)
io adoro questo linguaggio
-
-