Dynamic variable names: Difference between revisions
(Forth) |
(added php) |
||
Line 36: | Line 36: | ||
# take the string as the name of the variable |
# take the string as the name of the variable |
||
print "$foo\n"; # prints "42"</lang> |
print "$foo\n"; # prints "42"</lang> |
||
=={{header|PHP}}== |
|||
<lang php><?php |
|||
$varname = rtrim(fgets(STDIN)); # type in "foo" on standard input |
|||
$$varname = 42; |
|||
echo "$foo\n"; # prints "42" |
|||
?></lang> |
|||
=={{header|Python}}== |
=={{header|Python}}== |
Revision as of 08:22, 3 June 2009
You are encouraged to solve this task according to the task description, using any language you may know.
Create a variable with a user defined name.
AutoHotkey
<lang AutoHotkey> InputBox, Dynamic, Variable Name %Dynamic% = hello ListVars MsgBox % %dynamic% ; says hello </lang>
Common Lisp
<lang lisp>
(defmacro set-string (string value) `(setf ,(read-from-string string) ,value)) (set-string "dynamicA" "hello")
(print dynamicA) </lang>
Forth
<lang forth>
s" VARIABLE " pad swap move ." Variable name: " pad 9 + 80 accept pad swap 9 + evaluate
</lang> Of course, it is easier for the user to simply type VARIABLE name at the Forth console.
Perl
<lang perl>print "Enter a variable name: "; $varname = <STDIN>; # type in "foo" on standard input chomp($varname); $$varname = 42; # when you try to dereference a string, it will be
# treated as a "symbolic reference", where they # take the string as the name of the variable
print "$foo\n"; # prints "42"</lang>
PHP
<lang php><?php $varname = rtrim(fgets(STDIN)); # type in "foo" on standard input $$varname = 42; echo "$foo\n"; # prints "42" ?></lang>
Python
<lang python>>>> n = raw_input("Enter a variable name: ") Enter a variable name: X >>> exec n + " = 42" >>> X 42</lang>
<lang python>>>> n = input("Enter a variable name: ") Enter a variable name: X >>> exec(n + " = 42") >>> X 42</lang>
Tcl
<lang Tcl>puts "Enter a variable name:" gets stdin varname set $varname 0</lang>