I want a function that gets the type of a value at runtime. Example use:
(get-type a)
where a
has been define
d t
In Scheme implementations with a Tiny-CLOS-like object system, you can just use class-of
. Here's a sample session in Racket, using Swindle:
$ racket -I swindle
Welcome to Racket v5.2.1.
-> (class-of 42)
#
-> (class-of #t)
#
-> (class-of 'foo)
#
-> (class-of "bar")
#
And similarly with Guile using GOOPS:
scheme@(guile-user)> ,use (oop goops)
scheme@(guile-user)> (class-of 42)
$1 = #< 14d6a50>
scheme@(guile-user)> (class-of #t)
$2 = #< 14c0000>
scheme@(guile-user)> (class-of 'foo)
$3 = #< 14d3a50>
scheme@(guile-user)> (class-of "bar")
$4 = #< 14d3b40>