HDTenEightyP/NetNews huggingface dataset:
From: dank@blacks.jpl.nasa.gov (Daniel R. Kegel)
Subject: Conversion of Verilog timing checks to VHDL?
Organization: Image Analysis Systems Group, JPL
Date: Fri, 18 Dec 1992 04:36:18 GMT

Hi all,
is there an accepted idiom for expressing the sort of timing checks
supported in Verilog, i.e.
    $width(negedge x, t0);
    $setup(x, posedge y, t0);
    $hold(posedge x, y, t0);
in VHDL?

I'm thinking about converting a PD program that generates Verilog
to also generate VHDL.
- Dan Kegel (dank@blacks.jpl.nasa.gov)
Newsgroups: comp.lang.verilog
From: rajesh@chdasic.sps.mot.com (Rajesh Patil)
Subject: Re: execution of always blocks
Reply-To: rajesh@chdasic.sps.mot.com
Organization: Motorola SPS ASIC, Chandler, AZ
Date: Fri, 18 Dec 1992 17:44:51 GMT

manley@optilink.COM (Terry Manley) writes:

> always @(posedge Clk) c = b;
> always @(posedge Clk) b = a;

Verilog does not guarantee the sequence of execution of
multiple procedural blocks such as the always blocks above.
If you have to use two always blocks, you could put
a #0 delay before the procedural assignment that you want
done last. That will make VerilogXL schedule that event
for processing at the end of that timestamp.

---
Rajesh Patil
----------------------------------------------------------------------
Advanced Product Operations                 rajesh@chdasic.sps.mot.com
Motorola ASIC                               
----------------------------------------------------------------------
From: manley@optilink.COM (Terry Manley)
Newsgroups: comp.lang.verilog
Subject: execution of always blocks
Date: 17 Dec 92 07:15:51 GMT
Organization: DSC/Optilink Access Products

Ok, I've got a 'newbie' question.

What's the story with this language?

More specifically why doesn't the following work:

reg a,b,c;

always @(posedge Clk) c = b;
always @(posedge Clk) b = a;

When the following does:

always @(posedge Clk)
  begin
	c = b;
	b = a;
  end

In the first case for some reason verilog may perform the "b = a"
assignment first, thereby throwing away the expected value that c was
going to get.  We've even seen cases where in a given simulation
sometimes it works correctly, sometimes it doesn't.

Ideally one would want the data transfer at the posedge of the clock
to behave like digital logic, that is it would, in this case behave
like a shift register.  Instead we get what looks like a shift
register with a bad hold time problem. 

So what is the story with multiple always blocks?
Is this something to worry about between modules?
How about between modules in different files?


--
dave
manley@optilink.com

Newsgroups: comp.lang.sigplan
From: bth@watson.ibm.com (Brent T. Hailpern)
Subject: POPL air fares
Date: Mon, 14 Dec 1992 20:53:25 GMT
Disclaimer: This posting represents the poster's views, not necessarily those of IBM
Organization: IBM T.J. Watson Research Center

>From: kamin@cs.uiuc.edu (Sam Kamin)
>Newsgroups: comp.compilers
>Subject: Discounted USAir flights to POPL
>Keywords: conference, comment
>Message-ID: <92-12-045@comp.compilers>
>Date: 10 Dec 92 17:09:51 GMT
>Sender: compilers-sender@iecc.cambridge.ma.us
>Reply-To: kamin@cs.uiuc.edu (Sam Kamin)
>Organization: University of Illinois, Dept of Computer Science
>Lines: 15
>Approved: compilers@iecc.cambridge.ma.us

Dee Medley, local arrangements chair for POPL, asked me to post this
information: You can get cheaper rates on USAir flights to Charleston if
you mention ACM-POPL when you get your tickets.

(I don't have any more details than that - like how much you'll save, or
what to do if you've already bought tickets - so all I can say is to give
it a try.  You can contact Dee at dmedley@uscn.uga.edu, although she's
away until Monday, 12/14.)

- Sam Kamin
[If these are the usual conference fares, they're cheaper than full fare
but not as good as a 7-day stay Saturday night fare. -John]

-- 

Newsgroups: comp.lang.scheme
From: fox@cs.nyu.edu (David Fox)
Subject: Why is there no eval function in scheme?
Organization: Courant Institute of Mathematical Sciences
Date: Thu, 17 Dec 1992 15:24:32 GMT

I occasionally would like to eval a scheme expression in my
program, but I find it is specifically excluded from the
language.  I would like to be able to read and evaluate
scheme expressions in my application, but I don't know how.
Does anyone else know?  Can someone explain why I don't
really want to do this?
From: damm@diku.dk (Kristian Damm Jensen)
Newsgroups: comp.lang.scheme
Subject: Re: Are interpreters now as fast as compiled code used to be?
Date: 15 Dec 92 10:23:59 GMT
Organization: Department of Computer Science, U of Copenhagen

gjc@mitech.com (George J. Carrette) writes:

>Informal survey, how fast is your Scheme interpreter?

>The question is: With the latest wave of stock hardware,
>                 have simple interpreters gotten as fast as
>                 compilers were only a couple years ago?


Using chezScheme I get

	time		app age
sparc1	0.27 sec	1989
sun4	0.38 sec	1987
vax780	1.16 sec	1984
-- 
Kristian Damm Jensen (damm@diku.dk)
"Life is like a sewer - what you get out of it depends on what you put into it"
- Tom Lehrer
From: gjc@mitech.com (George J. Carrette)
Newsgroups: comp.lang.scheme
Subject: Re: vectors,siod
Date: 16 Dec 92 16:59:54 GMT
Organization: Mitech Corporation, Concord MA

In article <8365@charon.cwi.nl>, dijk@cwi.nl (Valentijn van Dijk) writes:
> I'm new to this newsgroup, and fairly new to Scheme as well. One thing
> I understood is that the Scheme dialect I use is SIOD Scheme. Now I
> wanted to use vectors, but it appears my system doesn't know what
> vectors are.

SIOD version 2.9 knows about C long, C double, and general lisp
object arrays, including fast ways to save/restore these to
a binary file. This was intended to support a numerical
programming environment with embedded lisp interpreter.

Newsgroups: comp.lang.scheme
From: fox@cs.nyu.edu (David Fox)
Subject: Summary: Why no eval function in scheme?
Organization: Courant Institute of Mathematical Sciences
Date: Sat, 19 Dec 1992 17:11:59 GMT

It turns out that the reason there has been no eval in the
scheme standard is due to the standards folks having difficulty
agreeing on the semantics.  There should be an EVAL in the
fifth revision.  Most Schemes do provide an eval function, but
it seems the one I use does not.

It is not the case that eval is omitted so that the runtime
environment is smaller, since LOAD requires the same machinery
and is an essential procedure.

Thanks to all those who replied.
Newsgroups: comp.lang.scheme
From: duval@spice.AUstin.ibm.COM (Keith Duval)
Subject: Scheme Source
Organization: The Internet
Date: Sun, 20 Dec 1992 16:51:46 GMT


Are there ftp Scheme sources available for Sun4 or Rs6000?

Thanks
Ron Chaiken
Newsgroups: comp.lang.scheme
From: thinman@netcom.com (Technically Sweet)
Subject: Re: Are interpreters now as fast as compiled code used to be?
Organization: International Foundation for Internal Freedom
Date: Thu, 17 Dec 1992 18:20:39 GMT

bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:

>Implementation inefficiency isn't the only problem with continuations.  The
>other problem is that nobody understands them.  

OK, ok, Dylan needs some sort of thread system.  Opinion: it should be
friendly to transparent multi-processor operation.  


-- 

Lance Norskog

Data is not information is not knowledge is not wisdom.
Xref: sparky comp.lang.scheme:2768 comp.lang.lisp:3098
From: thinman@netcom.com (Technically Sweet)
Newsgroups: comp.lang.scheme,comp.lang.lisp
Subject: Re: Want history/command editing facilities in free Lisps
Date: 16 Dec 92 19:05:47 GMT
Organization: International Foundation for Internal Freedom

Free software is out there today to put a nice full-bore GUI
on Scheme. SUIT (from u of virginia) runs on DOS/windows/mac/X.
There are other platform-independent toolkits, too.

I wrote a C object system which accidentally turned out to be
great for adding C extensions to Scheme.  You don't have to write
any interface glue for your extension; one interface to the
object library is all it takes.  It runs under SCM, Elk, & Scheme->C.


-- 

Lance Norskog

Data is not information is not knowledge is not wisdom.
Newsgroups: comp.lang.scheme
From: matt@volga.Berkeley.EDU (Matt Wright)
Subject: What's the story with ATOM??
Organization: University of California, at Berkeley
Date: Tue, 15 Dec 1992 07:03:22 GMT


Although R4RS doesn't mention atoms at all, but The Book says it's just 
anything that's not a pair.

Chez Scheme seems to think anything that's not a pair is an atom, including
vectors.  EdScheme thinks '() isn't an atom (contrary to The Book...)

What's the story on this?  Do people (e.g., implementors) have rationales
for doing it a particular way?  To me, (lambda (x) (not (pair? x))) makes
sense, but on the other hand, it's weird to me that a vector is an atom; I'd
rather think of a pair as a vector of length two than of a vector as an atom.

Do people think this should be in the standard (non-essential, I would
think)?  Or should I just never use it?

-Matt
Newsgroups: comp.lang.scheme,comp.lang.lisp
From: fox@cs.nyu.edu (David Fox)
Subject: Re: Want history/command editing facilities in free Lisps
Organization: Courant Institute of Mathematical Sciences
	<HANCHE.92Dec9104214@ptolemy.ams.sunysb.edu>
	<1992Dec15.034053.10061@midway.uchicago.edu>
	<BRENT.92Dec15095325@amber.ssd.csd.harris.com>
Date: Tue, 15 Dec 1992 16:20:21 GMT

In article <BRENT.92Dec15095325@amber.ssd.csd.harris.com> brent@ssd.csd.harris.com (Brent Benson) writes:

   ab2r@quads.uchicago.edu (Marshall Abrams) writes:

   > I'm really thankful to all of the free Lisp and Scheme implementors
   > out there, but I want to put in a plug for adding a command line
   > editing/history mechanism to these programs.  If I were a real C
   > programmer, and had time, I suppose I'd do it myself.  (Hmm--Maybe

   It's already been done for you: the GNU readline library.  Just plug
   it in and play.

The CMULisp package for emacs is nice too, or just running Scheme
inside a CMU shell.
From: Chewy@cup.portal.com (Paul Frederick Snively)
Newsgroups: comp.lang.scheme
Subject: Re: Are interpreters now as fast as compiled code used to be?
Date: Wed, 16 Dec 92 09:30:47 PST
Organization: The Portal System (TM)
  <4067@mitech.com><1992Dec15.201735.21731@netcom.com>
  <GJR.92Dec15214517@klosters.ai.mit.edu>

Guillermo Rozas wrote:

`If only "modern operating systems" (aka. Unix) only allowed us
arbitrary control over our address space...'

You have to be a little careful when talking about what `Unix' does or does
not do, as I'm sure that Mr. Rozas is aware.  To name but one example, the
Mach kernel _does_ give you arbitrary control over your address space if you
are willing to write an external memory manager, a fact that was used to some
effect in Carnegie-Mellon's Camelot and Avalon projects.

Paul Snively
Chewy@cup.portal.com
Xref: sparky comp.lang.scheme:2796 comp.lang.lisp:3122
From: pcg@aber.ac.uk (Piercarlo Grandi)
Newsgroups: comp.lang.scheme,comp.lang.lisp
Subject: Re: Want history/command editing facilities in free Lisps
Date: 20 Dec 92 21:53:18 GMT
	<HANCHE.92Dec9104214@ptolemy.ams.sunysb.edu>
	<1992Dec15.034053.10061@midway.uchicago.edu> <4068@mitech.com>
Reply-To: pcg@aber.ac.uk (Piercarlo Grandi)
Organization: Prifysgol Cymru, Aberystwyth

On 15 Dec 92 10:49:06 GMT, gjc@mitech.com (George J. Carrette) said:

gjc> (Marshall Abrams) writes:

abrams> I'm really thankful to all of the free Lisp and Scheme
abrams> implementors out there, but I want to put in a plug for adding a
abrams> command line editing/history mechanism to these programs.  If I
abrams> were a real C programmer, and had time, I suppose I'd do it
abrams> myself.

gjc> You don't need to create any new program. The GNU software has a
gjc> subroutine library for adding command-line editing.

Nooooo! Don't! Don't use GNU readline! It will take over your 16
processor Cray Y-MP only to fo line editing!

The editline library has been posted to comp.sources, works well, is a
drop in replacement for readline, and is about ten times smaller
withoput losing any essential functionality.

Moreover the schemish approach is not to link in the line editing
library at all, if yoiu can help it; use a history front end, or a
history line discipline. There are quite a few history front ends; for
example the Reactive Keyboard. Screen 3.x can also be used as a history
front end. They work for all programs, for all situations.

gjc> On the other hand, it is not unusual to find that command line
gjc> editors (and/or fancy rubout handlers) are in fact LARGER than
gjc> otherwise complete LISP implementations like SIOD.

'editline' was worked upon by Rich $alz; he is almost a minimalist.

gjc> Everything has its cost.

Eventually we will see 'size gsync' print: '463872+89088+125952'
or 'wc -l gsync.man' print '786'... :-) (GNU sync joke original
due to Alec Muffett, hi!)
--
Piercarlo Grandi, Dept of CS, PC/UW@Aberystwyth <pcg@aber.ac.uk>
  E l'italiano cantava, cantava. E le sue disperate invocazioni giunsero
  alle orecchie del suo divino protettore, il dio della barzelletta
Newsgroups: comp.lang.scheme
From: hayes@jazz.concert.net (Brian Hayes - Sigma Xi)
Subject: Re: What's the story with ATOM??
Organization: MCNC Center for Communications -- CONCERT Network
Date: Tue, 15 Dec 1992 14:44:09 GMT


matt@volga.Berkeley.EDU asks "What's the story with ATOM??"

>                              To me, (lambda (x) (not (pair? x))) makes
> sense, but on the other hand, it's weird to me that a vector is an atom; I'd
> rather think of a pair as a vector of length two than of a vector as an atom.

If I remember right, it was just such incongruities that led
to the decision to supply the predicate pair? instead of the
traditional atom?. If you want a type predicate that returns
#t for anything but a pair or a vector, you are welcome to
define it and even call it atom?, but don't expect the rest
of the world to know what it means. By the way, what about
strings--are they atomic or composite? Are even numbers atomic?
(Rationals and complex numbers look rather composite to me.)
Newsgroups: comp.lang.scheme
From: dak@sq.sq.com (David A Keldsen)
Subject: Re: How to keep track of procedures?
Organization: SoftQuad Inc., Toronto, Canada
Date: Sat, 12 Dec 92 08:33:20 GMT

jbs@Congruent.COM (Jeffrey Siegal) writes:

>If you want to keep track of the top level procedures, that is an
>development environment issue.  I haven't seen any Scheme environments
>that do a particularly good job of this (I would define what the best
>C environments do as reasonably good).

Hmm.  I'd certainly agree that this isn't part of the language.  It
does bring up the question, though:  What would you like to see in a
Scheme development environment?

We're in the process of merging our version of PSI (a Portable Scheme
Interpreter) with Ozan Yigit's version; the result should be released
to the net...eventually.  (You Know How These Things Are.)

PSI supports things like procedure tracing, source tracing, call
tracing, apropos...well, here's a small sample:

----------------------------------------------------------------------
Script started on Sat Dec 12 03:05:13 1992
dak@sqarc :sqpsi
> (include-source-code #t)
#t
> (define (a) (+ #f 1 2 3))
#<procedure a>
> (procedure->src a)
(lambda () (+ #f 1 2 3))
> (a)
Error -- +: invalid argument: #f
in expression: 
(+ #f 1 2 3)
in procedure: a
> (define (cur b) (car b))
#<procedure cur>
> (apropos "c.r")
car 1-ARGS
cdr 1-ARGS
call-with-current-continuation 1-ARGS
cur 1-ARGS
set-car! 2-ARGS
set-cdr! 2-ARGS
#t
> (trace cur)
#<procedure cur>
> (cur '(1 2))
(#<procedure cur> (1 2)) => 1
1
> (untrace cur)
#<procedure cur>
> (global-trace 'calls)
0
> (cur '(1 2))
[(cur (1 2))
 [(car (1 2))
 ] car => 1
1
>
----------------------------------------------------------------------

Disclaimer:  I work for SoftQuad, Inc.  SQPSI is a part of some of
our products.  PSI should be available on the net, Real Soon Now.
No lawyer-serviceable opinions inside.  Do not open cover.  Shock
hazard.  This side down.  Do not fold, spellcheck, or punctuate.

Regards,
Dak
-- 
David A. 'Dak' Keldsen of SoftQuad, Inc. email: dak@sq.com  phone: 416-239-4801
"Therefore, get up; defeat your breathlessness with spirit that can win 
all battles if the body's heaviness does not deter it."
Dante, _Inferno_ from canto 24, (trans. by Allen Mandelbaum)
From: brent@ssd.csd.harris.com (Brent Benson)
Newsgroups: comp.lang.scheme
Subject: Re: Summary. Interpreters are faster than I thought
Date: 18 Dec 92 16:17:27 GMT
Organization: Harris Computer Systems

gjc@mitech.com (George J. Carrette) writes:

> So here is another version of fib that uses binary arithmetic
> implemented as lists of symbols.

The B< function is buggy.  It requires (cdr '()) to return '() and 
(if #f foo) to return #f.  Here is a version that should work in R4RS
implementations. 

(define (b< x y)
  (cond
   ((null? x) (not (null? y)))
   ((null? y) #f)
   (else (or (b< (cdr x) (cdr y))
	     (if (equal? (cdr x) (cdr y))
		 (if (eq? (car x) 'A)
		     (eq? (car y) 'B)
		     #f)
		 #f)))))


--
Brent Benson                     
Harris Computer Systems
From: feeley@zurich.ai.mit.edu (Marc Feeley)
Newsgroups: comp.lang.scheme
Subject: Re: Are interpreters now as fast as compiled code used to be?
Date: 15 Dec 92 15:30:31
Organization: M.I.T. Artificial Intelligence Lab.
NNTP-Posting-Host: zohar.ai.mit.edu
In-reply-to: gjc@mitech.com's message of 15 Dec 92 10:45:46 GMT

In article <4067@mitech.com> gjc@mitech.com (George J. Carrette) writes:

   In article <FEELEY.92Dec14215701@zohar.ai.mit.edu>, feeley@zurich.ai.mit.edu (Marc Feeley) writes:
   > If you assume the
   > hardware's performance increases by a factor of 3 every year (which is
   > probably an underestimate right now), it shouldn't take more than 4 or
   > 5 years for the switchover to happen.

   Factor of 3 every year is a bit high. That means a factor
   of 59049 over a decade.

Well a factor of 3 for the last decade is clearly not valid but for
the next 5 years it might be.  DEC's Alpha introduced this year (200 MIPS
or so) is about 3 times faster than last year's HP9000/700 (70 MIPS).
If next year DEC comes out with their BIPS processor (1000 MIPS) my
factor of 3 seems about right.

Clearly this increase in performance will level off at some point in
the future.  When that happens the additional factor of 100 or so
provided by compilers will be more valuable.  Note that parallel
processing does not change the argument because what counts is the
number of MIPS you can get with your budget.

Marc
Xref: sparky comp.lang.scheme:2765 comp.lang.lisp:3096
From: haible@ma2s2.uucp (Bruno Haible)
Newsgroups: comp.lang.scheme,comp.lang.lisp
Subject: Re: Want history/command editing facilities in free Lisps
Date: 16 Dec 1992 16:54:23 GMT
Organization: University of Karlsruhe, Germany
NNTP-Posting-Host: ma2s2.mathematik.uni-karlsruhe.de
Summary: CLISP has them - thanks GNU readline
Keywords: history, editing, completion, CLISP

M. Abrams and Oliver Laumann suggest:

MA> I'm really thankful to all of the free Lisp and Scheme
MA> implementors out there, but I want to put in a plug for adding a
MA> command line editing/history mechanism to these programs.  If I
MA> were a real C programmer, and had time, I suppose I'd do it myself. 

OL> While we're at it-- how about symbol completion?  How many times have
OL> you typed "call-with-current-continuation" in an interactive Scheme
OL> session *without* making a typo?

Both can be accomplished by using the GNU readline library. That's the way
I did it for CLISP. The interface to that library is very simple to write,
some 30 lines of C code. The only restriction is that your program must be
covered by the GNU CopyLeft.

A completion utility in Common Lisp is available from
ifi.informatik.uni-stuttgart.de:/pub/xit/cl-utilities/completion.lisp .

B. Haible
haible@ma2s2.mathematik.uni-karlsruhe.de

Newsgroups: comp.lang.scheme
From: jaffer@zurich.ai.mit.edu (Aubrey Jaffer)
Subject: string regular expression matcher?
Organization: M.I.T. Artificial Intelligence Lab.
Date: Mon, 14 Dec 1992 17:37:21 GMT

I need code to match strings against regular expressions (SQL).  If
someone has code which can match multiple wildcards in strings I will
be happy to use it.
From: mike@mystix.cs.uoregon.edu (Michael John Haertel)
Newsgroups: comp.lang.scheme
Subject: Using memory mapping to implement continuations
Date: 16 Dec 92 21:09:19 GMT
	<4067@mitech.com><1992Dec15.201735.21731@netcom.com>
	<GJR.92Dec15214517@klosters.ai.mit.edu>
	<1992Dec16.190713.20460@netcom.com>
Organization: CS Dept, University of Oregon

A number of articles in the "Are interpreters as fast... " thread
refer to using page-remapping to implement continuations.

I don't see this as a big benefit.  If continuations are implemented
by stack copying, they're too expensive to use for anything in an
inner loop (like all those cool backtracking algorithms that use
continuations).  If continuations are implemented by making memory
mapping system calls (read: trapping to the OS, saving lots of
registers, going through a hairy VM system locking protocol, frobbing
the MMU, trashing the cache, unlocking the VM system, restoring lots
of registers, and returning to user mode) they're STILL too expensive
to use.  In fact, some machines might be able to copy a page or two of
stack faster than they can make the necessary system calls.  (Note that
copy-on-write for large things like fork() is still a win, because it
amortizes the system call overhead, but continuations probably involve
at most a page or two of data on average.)

The only implementation I've ever seen where continuations were cheap
enough that I'd actually want to use them is SML of NJ.  But in that
implementation it's achieved perhaps at the cost of making procedure
calls a little more expensive than they should be.

Memory remapping is not free.
Organization: University of Maine System
Date: Thursday, 17 Dec 1992 09:13:46 EST
From: <RNALLEY@MAINE.MAINE.EDU>
Newsgroups: comp.lang.scheme
Subject: PC-Scheme (TI) and hardware compatibility

I need some help with hardware compatibility and TI PC-Scheme.
I have used TI's Scheme for some time on an old IBM 8088
and more recently on an HP Vectra.  No problem.
However, I recently tried to load and run on a Leading Edge 486
and found the package would load but not run.
Even the simplist commands, i.e. (+ 2 2) generate errors.
The error is NOT DEFINED IN THIS ENVIRONMENT.
Any thoughts on how I can get a Leading Edge to cooperate?
.
.
Bob Nalley
University of Maine at Ft. Kent
Rnalley@maine.maine.edu
From: pk@cs.tut.fi (Kellom{ki Pertti)
Newsgroups: comp.lang.scheme
Subject: Re: Something I don't understand about bindings
Date: 16 Dec 92 09:41:09
Organization: Tampere Univ. of Technology, Finland.
Distribution: world
	<HANCHE.92Dec15134343@ptolemy.ams.sunysb.edu>
	<1glic3INNq5b@news.aero.org>
NNTP-Posting-Host: talitiainen.cs.tut.fi
In-reply-to: doner@Aero.org's message of 15 Dec 1992 21:23:15 GMT

In article <1glic3INNq5b@news.aero.org> doner@Aero.org (John Doner) writes:
   On the other hand, his original define (again according to r4rs) is
   equivalent to

	   (define timed-prime-test
		   (lambda (n)
			   (define start-time (runtime))
			   (define found-prime? (prime? n))
			   .
			   .
			   .
				   ))

Which in turn is equivalent to

  (define timed-prime-test
     (lambda (n)
        (letrec ((start-time (runtime))
             ...)

Btw, there is nothing in R4RS that says that an implementation can not
evaluate the init values of a letrec in left to right order, so the
original code *could* work with a R4RS conforming Scheme. It is just not
required to work --- another nasty thing about evaluation order that
can bite you.
--
Pertti Kellom\"aki (TeX format)  #       These opinions are mine, 
  Tampere Univ. of TeXnology     #              ALL MINE !
      Software Systems Lab       #  (but go ahead and use them, if you like)


Newsgroups: comp.lang.scheme