I have read that with a statically typed language like Scala or Haskell there is no way to create or provide a Lisp apply
function:
(apply #\'+ (lis
The reason you can't do that in most statically typed languages is that they almost all choose to have a list type that is restricted to uniform lists. Typed Racket is an example for a language that can talk about lists that are not uniformly typed (eg, it has a Listof
for uniform lists, and List
for a list with a statically known length that can be non-uniform) -- but still it assigns a limited type (with uniform lists) for Racket's apply
, since the real type is extremely difficult to encode.