############################################################################
#
# File: typecode.icn
#
# Subject: Procedures to produce letter code for Icon type
#
# Author: Ralph E. Griswold
#
# Date: April 6, 1993
#
############################################################################
#
# This file is in the public domain.
#
############################################################################
#
# typecode(x) produces a one-letter string identifying the type of
# its argument. In most cases, the code is the first (lowercase)
# letter of the type, as "i" for the integer type. Structure types
# are in uppercase, as "L" for the list type. All records have the
# code "R". The code "C" is used for the co-expression type to avoid
# conflict for the "c" for the cset type. In the case of graphics, "w"
# is produced for windows.
#
############################################################################
procedure typecode(x)
local code
# be careful of records and their constructors
image(x) ? {
if ="record constructor " then return "p"
if ="record" then return "R"
}
code := type(x)
if code == ("list" | "set" | "table" | "co-expression") then
code := map(code,&lcase,&ucase)
return code[1]
end
This page produced by UniDoc on 2021/04/15 @ 23:59:45.