[racket-dev] differences in error reporting

From: Pierpaolo Bernardi (olopierpa at gmail.com)
Date: Tue Jan 29 20:40:43 EST 2013

Update: it happens also for system supplied functions, for example
(car 3) displays the same behavior.

However, it happens always, when certain programs are in the editor,
and never with others.

I don't see a pattern. At this moment I cannot attach a file which
causes this (am typing in a phone...)

will send an example tomorrow.

P.


2013/1/30, Robby Findler <robby at eecs.northwestern.edu>:
> I don't see that with this program:
>
> #lang racket
>
> (define (integer->roman n)
>   (cond ((not (integer? n))
>          (raise-argument-error 'integer->roman "integer?" n))
>         ((positive? n)
>          (apply string-append n))
>         ((negative? n)
>          (apply string-append "NEGATIVVS " 1))
>         (else
>          "NVLLA")))
>
> Welcome to DrRacket, version 5.3.2.3--2013-01-29(32529d89/d) [3m].
> Language: racket; memory limit: 128 MB.
>> (integer->roman 3.3)
> . . integer->roman: contract violation
>   expected: integer?
>   given: 3.3
>> (integer->roman 3.3)
> . . integer->roman: contract violation
>   expected: integer?
>   given: 3.3
>>
>
>
> On Tue, Jan 29, 2013 at 4:33 PM, Pierpaolo Bernardi
> <olopierpa at gmail.com>wrote:
>
>> If I use raise-argument-error in my functions, like this:
>>
>> (define (integer->roman n)
>>   (cond ((not (integer? n))
>>          (raise-argument-error 'integer->roman "integer?" n))
>>         ((positive? n)
>>          (apply string-append (positive-integer->roman n)))
>>         ((negative? n)
>>          (apply string-append "NEGATIVVS " (positive-integer->roman (-
>> n))))
>>         (else
>>          "NVLLA")))
>>
>> I get errors like this:
>>
>> Welcome to DrRacket, version 5.3.2.2--2013-01-26(88404f3/a) [3m].
>> Language: racket [custom].
>> > (integer->roman 3.3)
>> integer->roman: contract violation
>>   expected: integer?
>>   given: 3.3
>> > (integer->roman 3.3)
>> . . C:\Program
>> Files\Racket-Full-5.3.2.2\collects\racket\private\more-scheme.rkt:263:2:
>> integer->roman: contract violation
>>   expected: integer?
>>   given: 3.3
>>
>> That is, from the second time on I get the extraneous prefix.  Is this
>> expected?
>>
>> P.
>>
>>
>> _________________________
>>   Racket Developers list:
>>   http://lists.racket-lang.org/dev
>>
>>
>

-- 
Inviato dal mio dispositivo mobile

Posted on the dev mailing list.