Menu: Difference between revisions
Content added Content deleted
(Added TI-83 BASIC) |
(→{{header|Prolog}}: added) |
||
Line 1,379: | Line 1,379: | ||
editvar /newvar /value=goback /userinput=1 /title=Do you want to chose something else? |
editvar /newvar /value=goback /userinput=1 /title=Do you want to chose something else? |
||
if -goback- /hasvalue y goto :a else exitcurrentprogram 1 </lang> |
if -goback- /hasvalue y goto :a else exitcurrentprogram 1 </lang> |
||
=={{header|Prolog}}== |
|||
<lang prolog> |
|||
rosetta_menu([], "") :- !. %% Incase of an empty list. |
|||
rosetta_menu(Items, SelectedItem) :- |
|||
repeat, %% Repeat until everything that follows is true. |
|||
display_menu(Items), %% IO |
|||
get_choice(Choice), %% IO |
|||
number(Choice), %% True if Choice is a number. |
|||
nth1(Choice, Items, SelectedItem), %% True if SelectedItem is the 1-based nth member of Items, (fails if Choice is out of range) |
|||
!. |
|||
display_menu(Items) :- |
|||
nl, |
|||
foreach( nth1(Index, Items, Item), |
|||
format('~w) ~s~n', [Index, Item]) ). |
|||
get_choice(Choice) :- |
|||
prompt1('Select a menu item by number:'), |
|||
read(Choice). |
|||
</lang> |
|||
Example run: |
|||
<lang prolog> |
|||
?- rosetta_menu(["fee fie", "huff and puff", "mirror mirror", "tick tock"], String). |
|||
1) fee fie |
|||
2) huff and puff |
|||
3) mirror mirror |
|||
4) tick tock |
|||
Select a menu item by number:a. |
|||
1) fee fie |
|||
2) huff and puff |
|||
3) mirror mirror |
|||
4) tick tock |
|||
Select a menu item by number:10. |
|||
1) fee fie |
|||
2) huff and puff |
|||
3) mirror mirror |
|||
4) tick tock |
|||
Select a menu item by number:3. |
|||
String = "mirror mirror". |
|||
</lang> |
|||
=={{header|PureBasic}}== |
=={{header|PureBasic}}== |