Minimal example:
#lang racket
(define (f x y)
(values x y))
(define a (f 1 2)) ; error - as opposed to e.g. (define-values (a b) (f 1 2))
At least in Dr Racket, the error message lacks the usual "X" link to the source location.
result arity mismatch;
expected number of values not received
expected: 1
received: 2
Version 8.14 [cs].
bremner
December 26, 2024, 4:29pm
2
Daniel Prager via Racket Discourse
notifications@racket.discoursemail.com writes:
(define a (f 1 2)) ; error - as opposed to e.g. (define-values (a b) (f 1 2))
If understand correctly, you think this should not be an error. I
suspect that things are working as intended, but maybe it helps us
collectively to understand the issue if you explain what value a should
get if this is not an error.
d
#lang racket/base
(define a (values 1 2))
This program provokes the same error:
result arity mismatch;
expected number of values not received
expected: 1
received: 2
In DrRacket the red cross (the "X") is missing, i.e. the error doesn't have a source location.
FWIW the expansion is:
(module anonymous-module racket/base
(printing:module-begin
(module configure-runtime '#%kernel
(#%require racket/runtime-config)
(configure #f))
(define a (values 1 2))))
If understand correctly, you think this should not be an error.
No, I agree that it is an error.
In this instance the error location is not reported.
As I wrote in the initial error report:
At least in Dr Racket, the error message lacks the usual "X" link to the source location.
Dan