On Fri, 27 Jun 2014 13:55:52 -0400 Sam Tobin-Hochstadt <sa...@cs.indiana.edu> wrote:
> I would write the program this way: > > #lang typed/racket > > (: exit-with-error-msg : String Any * -> Any) > (define (exit-with-error-msg m . e) > (apply eprintf m e) > (exit 1)) > > Note that we explicitly require at least one argument, the format > string. In your program, Typed Racket can't tell that you won't call > `exit-with-error-msg` with 0 arguments, which would not be correct for > `eprintf`. > Aah, I see. This make sense. Thanks for this. -- Manfred > Sam > > On Fri, Jun 27, 2014 at 1:52 PM, Manfred Lotz > <manfred.l...@arcor.de> wrote: > > I have this: > > > > (define (exit-with-error-msg . e) > > (apply eprintf e) > > (exit 1)) > > > > > > When using it with typed racket I get: > > > > test.rkt:127:4: Type Checker: Bad arguments to function in apply: > > Domain: String Any * > > Arguments: (Listof Any) * > > > > in: (apply eprintf e) > > context...: > > > > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt:249:0: > > type-check > > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/tc-setup.rkt:40:0: > > tc-setup > > /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typed-racket.rkt:25:4 > > standard-module-name-resolver > > > > I have to admit it is not clear to me how I would specify a type for > > exit-with-error-msg. > > > > Any idea? > > > > -- > > Manfred > > > > > > ____________________ > > Racket Users list: > > http://lists.racket-lang.org/users > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users