|
USE: formatting
|
|
|
|
: print-menu ( seq -- )
|
|
[ 1 + swap "%d - %s\n" printf ] each-index
|
|
"Your choice? " write flush ;
|
|
|
|
: select ( seq -- result )
|
|
dup print-menu
|
|
readln string>number [
|
|
1 - swap 2dup bounds-check?
|
|
[ nth ] [ nip select ] if
|
|
] [ select ] if* ;
|