RosettaCodeData/Task/Menu/Phix/menu.phix

24 lines
716 B
Plaintext

function menu_select(sequence items, object prompt)
sequence res
integer nres
if length(items)=0 then return 0 end if
while 1 do
for i = 1 to length(items) do
printf(1,"%d) %s\n",{i,items[i]})
end for
puts(1,iff(atom(prompt)?"Choice?":prompt))
res = scanf(trim(gets(0)),"%d")
puts(1,"\n")
if length(res)=1 then
nres = res[1][1]
if nres>0 and nres<=length(items) then exit end if
end if
end while
return nres
end function
constant items = {"fee fie", "huff and puff", "mirror mirror", "tick tock"}
integer n = menu_select(items,"Which is from the three pigs? ")
printf(1,"You chose %d(%s).\n",{n,items[n]})