Skip to content

Character

Given a file named “main.scm” with:

(import (scheme base))
(write-u8 (if (char? <expression>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

expression
#\A
#\newline
(integer->char 65)

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-alphabetic? #\<value>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

valueoutput
aA
AA
zA
ZA
ÀA
ÝA
ßA
ßA
àA
ýA
ΑA
αA
A
A
@B
0B

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-alphabetic? (integer->char <value>)) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

valueoutput
837A
113822A
127369A

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-numeric? #\<value>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

valueoutput
0A
9A
@B
AB

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-lower-case? #\<value>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

valueoutput
0B
9B
@B
aA
AB
zA
ZB
B
ÀB
ÝB
ßA
àA
ýA
αA

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-upper-case? #\<value>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

valueoutput
0B
9B
@B
AA
aB
ZA
zB
A
ÀA
ÝA
ßB
àB
ýB
αB

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (char-whitespace? <expression>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

expressionoutput
#\newlineA
#\returnA
#\spaceA
#\tabA
#@B
#\AB
(integer->char 12288)A

Given a file named “main.scm” with:

(import (scheme base))
(write-char #\A)

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

Given a file named “main.scm” with:

(import (scheme base))
(write-char #\A)
(newline)
(write-char #\B)

When I successfully run stak main.scm

Then the stdout should contain exactly:

A
B

Given a file named “main.scm” with:

(import (scheme base))
(write-u8 (if (<predicate> <characters>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

predicatecharactersoutput
char=?#\A #\AA
char=?#\A #\BB
char=?#\A #\A #\AA
char=?#\A #\A #\BB
char<?#\A #\BA
char<?#\A #\AB
char<?#\B #\AB
char<?#\A #\B #\CA
char<?#\A #\B #\BB
char<=?#\A #\BA
char<=?#\A #\AA
char<=?#\B #\AB
char<=?#\A #\B #\CA
char<=?#\A #\B #\BA

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (<predicate> <characters>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “<output>”.

predicatecharactersoutput
char-ci=?#\A #\AA
char-ci=?#\a #\AA
char-ci=?#\A #\BB

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (eqv? (char-downcase <input>) <output>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

inputoutput
#@#@
#\A#\a
#\a#\a
#\Z#\z
#\z#\z
#\ẞ#\ß
#\µ#\µ
#\Α#\α
#\ſt#\ſt

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (eqv? (char-upcase <input>) <output>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

inputoutput
#@#@
#\a#\A
#\A#\A
#\z#\Z
#\Z#\Z
#\α#\Α
inputoutput
#\ß#\ß

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (equal? (char-foldcase <input>) <output>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

inputoutput
#@#@
#[#[
#`#`
#\A#\a
#\a#\a
#\Z#\z
#\z#\z
#{#{
#\µ#\μ
#\À#\à
#\Ý#\ý
#\ß#\ß
#\Ꟶ#\ꟶ
#\Α#\α
inputoutput
#\ſt#\st
inputoutput
#\𞤀#\𞤢
#\𞤡#\𞥃

Given a file named “main.scm” with:

(import (scheme base) (scheme char))
(write-u8 (if (= (digit-value #\<character>) <output>) 65 66))

When I successfully run stak main.scm

Then the stdout should contain exactly “A”.

characteroutput
00
11
66
99