Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Xerox never comes up with anything original.


devel / comp.lang.lisp / Re: .Re: LISP PROGRAMMING

SubjectAuthor
* .Re: LISP PROGRAMMINGRobert L.
`* Re: .Re: LISP PROGRAMMINGRobert L.
 `- Re: .Re: LISP PROGRAMMINGRobert L.

1
.Re: LISP PROGRAMMING

<svcgd1$18ta$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=16938&group=comp.lang.lisp#16938

  copy link   Newsgroups: comp.lang.lisp
Path: i2pn2.org!i2pn.org!aioe.org!czUo3lgPgNYaaTRD7ojXdw.user.46.165.242.75.POSTED!not-for-mail
From: No_spamming@noWhere_7073.org (Robert L.)
Newsgroups: comp.lang.lisp
Subject: .Re: LISP PROGRAMMING
Date: Sat, 26 Feb 2022 06:12:50 -0000 (UTC)
Organization: Aioe.org NNTP Server
Message-ID: <svcgd1$18ta$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Info: gioia.aioe.org; logging-data="41898"; posting-host="czUo3lgPgNYaaTRD7ojXdw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: XanaNews/1.18.1.6
X-Notice: Filtered by postfilter v. 0.9.2
 by: Robert L. - Sat, 26 Feb 2022 06:12 UTC

> > (defun odd-reverse (list)
> > (let ((result
> > (loop for (odd even) on list by #'cddr
> > collect odd into odds
> > collect even into evens
> > finally (return (loop for odd in (reverse odds)
> > for even in evens
> > collect odd
> > collect even)))))
> > (subseq result 0 (list-length list))))
>
> Another viewpoint:
>
> (defun reverse-odd-elems (list)
> (loop with v = (coerce list 'simple-vector)
> with len = (length list)
> with odd-len = (if (evenp len) len (1- len))
> for i from 0 upto (floor odd-len 2)
> when (oddp i) do (rotatef (aref v i) (aref v (- odd-len i)))
> finally (return (coerce v 'list))))

Gauche Scheme:

(define (odd-reverse xs)
(define rev
(if (odd? (length xs))
(reverse xs)
(cdr (reverse (cons #f xs)))))
(map
(lambda (i a b) (if (odd? i) a b))
(lrange 0)
xs
rev))

(odd-reverse '(0 a 1 b 2 c 3))
===>
(3 a 2 b 1 c 0)

(odd-reverse '(0 a 1 b 2 c))
===>
(2 a 1 b 0 c)

Re: .Re: LISP PROGRAMMING

<svcrhq$14gp$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=16939&group=comp.lang.lisp#16939

  copy link   Newsgroups: comp.lang.lisp
Path: i2pn2.org!i2pn.org!aioe.org!dsEEtZQWSiLab9+E9SV2hw.user.46.165.242.75.POSTED!not-for-mail
From: No_spamming@noWhere_7073.org (Robert L.)
Newsgroups: comp.lang.lisp
Subject: Re: .Re: LISP PROGRAMMING
Date: Sat, 26 Feb 2022 09:23:07 -0000 (UTC)
Organization: Aioe.org NNTP Server
Message-ID: <svcrhq$14gp$1@gioia.aioe.org>
References: <svcgd1$18ta$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Info: gioia.aioe.org; logging-data="37401"; posting-host="dsEEtZQWSiLab9+E9SV2hw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: XanaNews/1.18.1.6
X-Notice: Filtered by postfilter v. 0.9.2
 by: Robert L. - Sat, 26 Feb 2022 09:23 UTC

On 2/26/2022, Robert L. wrote:

> > > (defun odd-reverse (list)
> > > (let ((result
> > > (loop for (odd even) on list by #'cddr
> > > collect odd into odds
> > > collect even into evens
> > > finally (return (loop for odd in (reverse odds)
> > > for even in evens
> > > collect odd
> > > collect even)))))
> > > (subseq result 0 (list-length list))))

Gauche Scheme:

"We don't need no stinkin' loops!"

(use srfi-1) ;; for unzip2

(define (odd-reverse seq)
(receive (odd even) (unzip2 (slices seq 2 #t #f))
(take (append-map list (reverse odd) even) (length seq))))

Re: .Re: LISP PROGRAMMING

<svcuhg$dvt$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=16940&group=comp.lang.lisp#16940

  copy link   Newsgroups: comp.lang.lisp
Path: i2pn2.org!i2pn.org!aioe.org!dsEEtZQWSiLab9+E9SV2hw.user.46.165.242.75.POSTED!not-for-mail
From: No_spamming@noWhere_7073.org (Robert L.)
Newsgroups: comp.lang.lisp
Subject: Re: .Re: LISP PROGRAMMING
Date: Sat, 26 Feb 2022 10:14:09 -0000 (UTC)
Organization: Aioe.org NNTP Server
Message-ID: <svcuhg$dvt$1@gioia.aioe.org>
References: <svcgd1$18ta$1@gioia.aioe.org> <svcrhq$14gp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Info: gioia.aioe.org; logging-data="14333"; posting-host="dsEEtZQWSiLab9+E9SV2hw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: XanaNews/1.18.1.6
X-Notice: Filtered by postfilter v. 0.9.2
 by: Robert L. - Sat, 26 Feb 2022 10:14 UTC

Gauche Scheme:

;; Re-order certain slots in a vector.
(define (reorder vec a b)
(define cpy (vector-copy vec))
(for-each
(lambda (i j) (vector-set! cpy i (vector-ref vec j)))
a b)
cpy)

(define (odd-reverse seq)
(define idx (lrange 0 (length seq) 2))
(vector->list
(reorder (list->vector seq) idx (reverse idx))))

Let's sort the even-numbered slots in a vector
(the index of the first slot is 0).

(define v #(77 2 99 0 33 8 55 6 44))
(define idx (lrange 0 (vector-length v) 2))
(reorder v idx
(sort idx < (lambda (i) (vector-ref v i))))

===>
#(33 2 44 0 55 8 77 6 99)


devel / comp.lang.lisp / Re: .Re: LISP PROGRAMMING

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor