Re: Lisp newbie needs help

Liste des GroupesRevenir à cl scheme 
Sujet : Re: Lisp newbie needs help
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 29. Aug 2024, 11:04:42
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vapdj5$3tkts$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
(defun my-test ()
   (loop for number = (1+ (random 6))
         as sum = number then (+ sum number)
         until (= number 1)
         do (format t "~&~D thrown. Sum: ~D" number sum)
         finally (format t "~&One thrown.")))

Gauche Scheme

(use srfi-1)  ;; unfold
(use srfi-27) ;; random-integer

(define (my-test)
  (fold
    (^(n sum) (print n " thrown.  Sum: " (inc! sum n)) sum)
    0
    (cdr (unfold zero? ($ + 1 $) (^_ (random-integer 6)) -1)))
  (print "One thrown."))


gosh> (my-test)
2 thrown.  Sum: 2
2 thrown.  Sum: 4
6 thrown.  Sum: 10
One thrown.

gosh> (my-test)
One thrown.


Explanation of "unfold":

Function: unfold end-test key gen-next-seed seed :optional tail-gen

(unfold zero? (lambda(n) (+ 800 n)) (lambda(n) (- n 1)) 7)
  ===>
(807 806 805 804 803 802 801)

(unfold zero? (lambda(n) (+ 800 n)) (lambda(n) (- n 1)) 7
  (lambda(n) (list "The number" n "ended the unfolding.")))
  ===>
(807 806 805 804 803 802 801 "The number" 0 "ended the unfolding.")

Date Sujet#  Auteur
29 Aug 24 * Re: Lisp newbie needs help5B. Pym
29 Aug 24 `* Re: Lisp newbie needs help4B. Pym
29 Aug 24  `* Re: Lisp newbie needs help3B. Pym
30 Aug 24   `* Re: Lisp newbie needs help2B. Pym
30 Aug 24    `- Re: Lisp newbie needs help1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal