[Gsll-devel] [iterate-devel] Fwd: iterate form evaluates but does not loadinto sbcl fasl
Liam Healy
lhealy at common-lisp.net
Tue Feb 9 20:25:23 UTC 2010
OK Mirko, fixed and pushed. Thanks for chasing this down.
Liam
On Tue, Feb 9, 2010 at 1:11 PM, Mirko Vukovic <mirko.vukovic at gmail.com> wrote:
> See below for the fix. Thank's to everyone's help and suggestions. I still
> have only a dim understanding of what is going on. But I am only in year
> three of the 10-year lisp journey :-)
>
> On Tue, Feb 9, 2010 at 9:54 AM, Mirko Vukovic <mirko.vukovic at gmail.com>
> wrote:
>>
>>
>> On Tue, Feb 9, 2010 at 9:30 AM, <Joerg-Cyril.Hoehle at t-systems.com> wrote:
>>>
>>> Mirko,
>>>
>>> >Are you implying that instead of lambda forms one should define the
>>> >functions and use function names.
>>> No. Just look at the examples in the source code, incl. tests.
>>> The key is to write #'(lambda ...) aka. (function (lambda ...)), not
>>> (lambda ...)
>>
>> Like this?
>>
>> (defclause-sequence matrix-row matrix-row-index
>> :access-fn
>> #'(lambda (grid index)
>> (assert (and (grid:gridp grid) (eql (grid:grid-rank grid) 2))
>> (grid))
>> (grid:row grid index))
>> :size-fn
>> #'(lambda (grid)
>> (assert (and (grid:gridp grid) (eql (grid:grid-rank grid) 2))
>> (grid))
>> (first (grid:grid-dimensions grid)))
>> :element-type t :sequence-type t
>> :element-doc-string "(copied) rows of a matrix"
>> :index-doc-string "index of the rows in a matrix")
>>
>> Unfortunately, that did not help improve things.
>>
>> Also, the iterate documentation has an example of `defclause-sequence'
>> (bottom of p.26 of the pdf file). There is no #'(lambda ...), just plain
>> (lambda ...)
>>
>> Thank you for your time,
>
>
> The fix was to put a single quote in front of the (lambda ...) expressions
> like this:
>
> (defclause-sequence matrix-row matrix-row-index
> :access-fn
> '(lambda (grid index)
> (assert (and (grid:gridp grid) (eql (grid:grid-rank grid) 2))
> (grid))
> (grid:row grid index))
> :size-fn
> '(lambda (grid)
> (assert (and (grid:gridp grid) (eql (grid:grid-rank grid) 2))
> (grid))
> (first (grid:grid-dimensions grid)))
> :element-type t :sequence-type t
> :element-doc-string "(copied) rows of a matrix"
> :index-doc-string "index of the rows in a matrix")
>
> Not #'(lambda ...). The same goes for named functions. Thus 'foo and not
> #'foo.
>
> Mirko
>
>
>
>
>
> _______________________________________________
> Gsll-devel mailing list
> Gsll-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel
>
>
More information about the gsll-devel
mailing list