Menu

#9 'filter' defined twice

closed
None
5
2004-05-20
2003-01-25
Anonymous
No

In CVS procedure filter is defined twice:

dclass/dclass.scm: (define (filter p xs) ...
elf/iterate.scm: (define (filter keep? xs) ...

This causes a SchemeException (wrong type of argument)
if a program loads them in the wrong order, as
kanderson's plan.scm does.
http://openmap.bbn.com/~kanderso/plan/plan.html

Suggest renaming the dclass version, as it doesn't
appear to be a public/export of that module.

[Note: plan.scm and example.scm define distinctly named
plan.Filter and FILTER.
To get (showWords FILTER) to work,
1. reorder 'loads' so iterate.scm loaded after dclass.scm

(load "dclass/record.scm") ;; dclass/dclass.scm defines
procedure filter
(load "elf/basic.scm") ;; elf/iterate.scm must
override procedure filter
(load "elf/sort.scm")

2. in showWords, rename parameter filter to, say,
a-filter (but not call to procedure filter)
3. in showWords, rename .probability to .probability$
4. in showWords, rename wordProb to .probability$

(define (showWords a-filter)
;; Show each word and probability.
;; Don't let spamers see this!
(let ((fields (list .name$ .nSpam$ .nHam$
.probability$)))
(for-each (lambda (w) (print (map (lambda (f) (f
w)) fields)))
(sort (filter (lambda (w) (> (count w) MIN_COUNT))
(.words$ a-filter))
(comparator > .probability$)))))

Diff follows.]

32c32,33
< (load "elf/basic.scm")
---
> (load "dclass/record.scm") ;; dclass/dclass.scm
defines procedure filter
> (load "elf/basic.scm") ;; elf/iterate.scm must
override procedure filter
34d34
< (load "dclass/record.scm")
172c172
< (define (showWords filter)
---
> (define (showWords a-filter)
175c175
< (let ((fields (list .name$ .nSpam$ .nHam$
.probability)))
---
> (let ((fields (list .name$ .nSpam$ .nHam$
.probability$)))
178,179c178,179
< (.words$ filter))
< (comparator > wordProb)))))
---
> (.words$ a-filter))
> (comparator > .probability$)))))

Discussion

  • Timothy John Hickey

    Logged In: YES
    user_id=17797

    Thanks.
    We usually get bug reports in jscheme-user@lists.sourceforge.net
    and keep forgetting to check here. Sorry....

     
  • Timothy John Hickey

    • assigned_to: nobody --> kanderso
     
  • Ken Anderson

    Ken Anderson - 2004-05-20

    Logged In: YES
    user_id=18278

    This bug has been fixed.

     
  • Ken Anderson

    Ken Anderson - 2004-05-20
    • status: open --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB