This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Query on using `stream-cons' with srfi-14


On Jul 23, 2014, at 1:44 PM, Per Bothner <per@bothner.com> wrote:

> On 07/23/2014 04:23 AM, Kumar Appaiah wrote:
>> Hi.
>> 
>> I'm trying out the SICP examples on streams using kawa. I am currently
>> stuck on a stream example. The particular blurb of code is:
>> 
>> (define cons-stream stream-cons)
>> (define the-empty-stream stream-null)
>> ...
>> Running this gives me the following error:
>> Argument  '#<macro stream-cons>' to 'apply-to-args' has wrong type (kawa.lang.Macro) (expected: procedure)
>>         at gnu.kawa.functions.ApplyToArgs.applyN(ApplyToArgs.java:165)
> 
>> What am I doing wrong? Please let me know if I am not being clear.
> 
> stream-cons is syntax - specifically a macro.
> It doesn't work to treat it as a value that is
> available at run-time.  (It might be reasonable for Kawa
> to warn about this.)
> 
> You would need to define cons-stream as a macro, for
> example (untested code):
> 
> (define-syntax cons-stream
>  (syntax-rules ()
>    ((_ a b) (stream-cons a b))))


It'll also work to define cons-stream as an alias:

(define-alias cons-stream stream-cons)

At least that works at the REPL with a slightly out-of-date
build of Kawa circa r7863 or so.



BTW the streams stuff is in SRFI-41, not SRFI-14.  At first
I was very confused by what the char-set library had to do
with streams working or not working.

--
Jamison Hope
The PTR Group
www.theptrgroup.com




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]