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>”.

value output
a A
A A
z A
Z A
À A
Ý A
ß A
ß A
à A
ý A
Α A
α A
A
A
@ B
0 B

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>”.

value output
837 A
113822 A
127369 A

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>”.

value output
0 A
9 A
@ B
A B

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>”.

value output
0 B
9 B
@ B
a A
A B
z A
Z B
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>”.

value output
0 B
9 B
@ B
A A
a B
Z A
z B
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>”.

expression output
#\newline A
#\return A
#\space A
#\tab A
#@ B
#\A B
(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>”.

predicate characters output
char=? #\A #\A A
char=? #\A #\B B
char=? #\A #\A #\A A
char=? #\A #\A #\B B
char<? #\A #\B A
char<? #\A #\A B
char<? #\B #\A B
char<? #\A #\B #\C A
char<? #\A #\B #\B B
char<=? #\A #\B A
char<=? #\A #\A A
char<=? #\B #\A B
char<=? #\A #\B #\C A
char<=? #\A #\B #\B A

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>”.

predicate characters output
char-ci=? #\A #\A A
char-ci=? #\a #\A A
char-ci=? #\A #\B B

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”.

input output
#@ #@
#\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”.

input output
#@ #@
#\a #\A
#\A #\A
#\z #\Z
#\Z #\Z
#\α #\Α
input output
#\ß #\ß

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”.

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

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”.

character output
0 0
1 1
6 6
9 9