Почему values в racket не first class citizen?
Пруф:
(eq? (values 1 2) (values 1 2))
result arity mismatch;
expected number of values not received
expected: 1
received: 2
Я вижу дохера функций вида xxxx-values и xxxx/values? Почему бы не сделать нормально?
UPD: товарищи из #racket говорят, что до появления в racket паттерн-матчинга было бы сложновато делать такие штуки без values:
(let-values ([(evens odds) (partition even? '(1 2 3 4))])
(list 'evens: evens 'odds: odds))