![]() |
||
|
> Could someone please volunteer and add Lua entries to the study below? > > http://merd.net/pixel/language-study/syntax-across-languages.html Here is my version. Please, check if I am right, I can have missed some stuff, or even be wrong on some points! Either you send the file yourself, or you just comment it, and I will send it myself. Note: I have throwed an occasional reference to Basic or JavaScript too :-) Regards. -- --=#=--=#=--=#=--=#=--=#=--=#=--=#=--=#=--=#=-- Philippe Lhoste (Paris -- France) Professional programmer and amateur artist http://jove.prohosting.com/~philho/ --=#=--=#=--=#=--=#=--=#=--=#=--=#=--=#=--=#=-- Sent through GMX FreeMail - http://www.gmx.netTitle: syntax across languages
<- back to Pixel's programming languages study page | mirrors : tuxfamily, chez, Mandrake |
Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :)
You know one language and want to find the corresponding operator or function in another language
Want to know the various ways people invented for commenting/assigning/...?
This is of course incomplete. I welcome contributions!
This file is generated from a perl script, so the most welcome contributions are the modification on cross-syntax.html.pl (and not the html file).
until end of line
# | Awk, E, Icon, merd, Perl, PHP, Python, Ruby, Shell, Tcl |
// | C++, C99, Dylan, E, Java, PHP |
-- | Ada, Cecil, Eiffel, Haskell, Lua, Sather, Simula |
; | Lisp, Rebol |
% | Erlang, Postscript, Prolog, TeX |
' | Basic |
\ | Forth |
nestable
(* ... *) | Beta, ML, Modula-3, OCaml, Pascal |
{ ... } | Pascal |
{- ... -} | Haskell |
non nestable
" ... " | Smalltalk |
/* ... */ | C, C++, Java, PHP |
<!-- ... --> | HTML, XML |
= | Basic, C, C++, Erlang, Haskell, Icon, Java, Lua, Mercury, merd, Mozart, OCaml, Perl, PHP, Prolog, Python, Ruby |
:= | Ada, Cecil, Dylan, E, Eiffel, merd, ML, Modula-3, OCaml, Pascal, Sather, Simula, Smalltalk |
<- | Haskell, OCaml |
:- | Prolog |
: | Rebol |
-> (1) | Beta |
define | Scheme |
def | E, PostScript |
setq | Lisp |
set | Tcl |
defun | Lisp |
f(a, b, ...) | Basic, C, C++, E, Java, Lua, Pascal, PHP, Python, Ruby |
f a b ... | Haskell, OCaml, SML, Tcl |
f a, b, ... | (Visual?) Basic |
; | C, C++, E, Java, Lua, merd, OCaml, Perl, PHP, Python, Ruby, Tcl |
end-of-line | Basic, E, Lua, merd, Python, Ruby, Tcl |
( ... ) | C, C++, E, Haskell, Java, Lua, merd, OCaml, Pascal, PHP, Python, Ruby, SML, Tcl |
indentation | merd |
begin ... end | OCaml, Ruby |
space (2) | merd |
[ ... ] | Tcl |
{ ... } | PHP |
{ ... } (3) | C, C++, E, Java |
begin ... end (3) | Pascal |
do ... end (3) | Lua |
indentation | Python |
indentation (3) | Haskell, merd |
. | Basic, Beta, C++, Cecil, Delphi/Kylix, Eiffel, Icon, Java, Lua, merd, Modula-3, Python, Ruby, Sather, Visual |
: | Lua |
# | OCaml |
functional syntax (4) | CLOS, Dylan, Haskell, Mercury |
object method para (5) | Smalltalk, Tcl |
object method(para) | E |
object <- method(para) (6) | E |
[ object method ] (7) | Objective-C |
-> | C++, Perl, PHP |
. | E, Java, Modula-3, OCaml, Pascal, Python, Ruby |
:: | C++, merd, Perl, Tcl |
' | Ada, Perl |
__ | Mercury |
' | Ada |
. | Ada, Beta, C, C++, E, OCaml, Pascal, Python |
^ | Mercury |
r { field } | merd |
field r | Haskell |
-> | C, C++ |
#field r | ML |
shallow
== != | C, C++, Java, OCaml, Perl, Tcl |
== ~= | Lua |
== === != | PHP |
eq ne | Perl, Tcl |
deep
== != | C++, E |
== /= | Haskell |
= <> | OCaml |
< > <= >= | C, C++, Haskell, Java, Lua, OCaml, Perl, PHP, Tcl |
lt gt le ge | Perl |
returns 3 values
a <=> b | E, merd, Perl, Ruby |
cmp | Perl, Python |
compare | Haskell, OCaml |
strcmp | PHP |
string compare | Tcl |
compareTo | E |
if c then a else b | Haskell, merd, ML, OCaml, Pascal |
if c then a else b end | Basic, Lua, Ruby |
if (c) a else b | C, C++, Java, PHP |
if c: a else: b | Python |
if {c} ?then? {a} ?else? {b} | Tcl |
if (c): a else: b endif | PHP |
if (c) {a} else {b} | C,C++, E, Perl |
c a b ifelse | PostScript |
c ? a : b | C, C++, Java, Perl, PHP, Ruby |
: | E, Eiffel, ML, OCaml |
:: | Haskell, Mercury |
!! | merd |
(t) e | C, C++, Java, PHP |
t(e) | Pascal |
e :> t | OCaml |
[ a => b, c => d ] | E |
array( a => b, c => d ) | PHP |
{ a => b, c => d } | Perl, Ruby |
{ a, b, c, d } | Perl, Ruby |
{ a: b, c: d } | Python |
{ a="b", c="d" } | Lua |
<< a b c d >> | PostScript |
a .. b | E, merd, Pascal, Perl, Ruby |
[ a .. b ] | Haskell |
range | PHP, Python |
a ..! b | E |
( a, b, c ) | Haskell, merd, ML, OCaml, Prolog, Python |
a, b, c | Lua |
a[e] | E, PHP, Python, Ruby |
a["e"] | Lua |
$a{e} | Perl |
$a(e) | Tcl |
a e get (8) | PostScript |
raise | OCaml, Python |
throw | C++, erlang, Java, Scheme |
die | Perl |
return -code | Tcl |
try: a except exn: b | Python |
try a with exn -> b | OCaml |
try a catch (exn) b | Java |
eval | Perl |
catch | erlang, Scheme, Tcl |
eval | Perl, PHP, Python, Ruby, Scheme, Tcl |
dostring("x=a*b") | Lua |
verbatim
'...' | _javascript_, Lua, Perl, PHP, Python, Ruby |
"..." | C, C++, Haskell, Java, _javascript_, Lua, OCaml, Pascal, Python, SML |
'''...''', """...""" | Python |
[[...]] | Lua |
<<'MARK' ... MARK | Perl, Ruby, sh |
{...{...}...} | Tcl |
q(...(...)...), q[...], q{...}, q<...>, q/.../ | Perl |
%q(...(...)...), %q[...], %q{...}, %q<...>, %q/.../ | Ruby |
q(...(...)...) | merd |
with interpolation
"... $v ..." | Perl, PHP, Tcl |
"... {v} ..." | merd |
"... #{v} ..." | Ruby |
<<MARK ... $v ... MARK | Perl, Ruby, sh |
<<<MARK ... $v ... MARK | PHP |
[ subst {...{... $v ...}...} ] | Tcl |
qq(...(... $v ...)...), qq[...], qq{...}, qq<...>, qq/.../ | Perl |
%Q(...(... $v ...)...), %Q[...], %Q{...}, %Q<...>, %Q/.../ | Perl |
qq(...(... {v} ...)...) | merd |
sprintf | C, C++ |
show | Haskell |
format | Lua |
to_s | Ruby |
toString | Java |
"" + e | E, Java |
str | Python |
cvs | PostScript |
+ | C++, E, Java, _javascript_, merd, Pascal, Python, Ruby |
. | Perl, PHP |
^ | ML, OCaml |
|| | Cecil |
++ | Haskell |
.. | Lua |
& | Visual Basic |
$a$b | Tcl |
* | E, Python, Ruby |
x | Perl |
times | merd |
str_repeat | PHP |
strrep | Lua |
string repeat | Tcl |
upcase/downcase | Ruby |
uc/lc | Perl |
toUpper/toLower | Haskell |
toUpperCase/toLowerCase | E, Java |
uppercase/lowercase | OCaml |
string toupper/string tolower | Tcl |
strupper/strlower | Lua |
toupper/tolower | C, C++ |
upcase/downcase | Ruby |
toUpperCase/toLowerCase | E, Java |
uc/lc | Perl |
strtoupper/strtolower | PHP |
string toupper/string tolower | Tcl |
strupper/strlower | Lua |
chr | Haskell, OCaml, Pascal, Perl, PHP, Python, Ruby |
format %c $c | Tcl |
toChar | E |
strchar | Lua |
(char) c | C, C++, Java |
ord | Haskell, Pascal, Perl, PHP, Python |
getNumericValue | Java |
code | OCaml |
s[0] | Ruby |
s 0 get | PostScript |
scan $s %c | Tcl |
toInteger | E |
strbyte | Lua |
(int) c | C, C++, Java |
undef/0/""/() | Perl |
None/0/""/() | Python |
NULL/0/'\0' | C |
NULL/0/'\0'/false | C++ |
no/off/false/0 | Tcl |
nil/false | Ruby |
nil | Lua, Scheme |
False | Haskell, merd |
false | E, Java, OCaml, Pascal, PostScript |
anything not false | C, Lua, Perl, Python |
true/anything not false | C++, Ruby |
t/anything not false | Scheme |
yes/on/true/non zero number | Tcl |
True | Haskell, merd |
true | E, Java, OCaml, Pascal, PostScript |
! | C, C++, Java, Perl, PHP, Ruby, Tcl |
~ | Lua |
not | Haskell, OCaml, Python |
short circuit
||/&& | C, C++, E, Haskell, Java, merd, OCaml, Perl, PHP, Ruby, Tcl |
or/and | Lua, Modula-2, Perl, PHP, PostScript, Python, Ruby |
or else/and then | Ada |
non short circuit (always evaluates both arguments)
|/& | Java, OCaml |
or/and | Ada, Pascal |
+ | E, merd, Python, Ruby |
, (9) | Perl |
@ | OCaml |
++ | Haskell |
array_merge | PHP |
concat | Tcl |
concat | Haskell, Mercury |
flatten | OCaml |
eval concat | Tcl |
flatten | Ruby |
[ a, b, c ] | E, Haskell, merd, Perl, PostScript, Prolog, Ruby |
( a, b, c ) | Perl |
{ a, b, c } | Lua |
[ a ; b ; c ] | OCaml |
[ a b c ] | Mozart |
'(a b c) | Lisp |
list | Lisp, Tcl |
a[i] | C, C++, E, Java, Lua, merd, Pascal, Perl, PHP, Python, Ruby |
!! | Haskell, Mercury |
a i get (10) | PostScript |
lindex | Tcl |
: | Haskell |
:: | OCaml |
| | Mozart, Prolog |
cons | Lisp |
each | merd, Ruby |
for in | E, Python, Ruby |
foreach | Lua, Perl, Tcl |
for-each | Scheme |
forall | PostScript |
iter | OCaml |
mapM_ | Haskell |
map | Haskell, Mercury, merd, OCaml, Perl, Python, Ruby, Scheme |
collect | Ruby |
array_map | PHP |
[ f x | x <- l ] (11) | Haskell |
[ f(x) for x in l ] (11) | Python |
map2 | OCaml |
zipWith | Haskell |
map | Python, Scheme |
find | Haskell, merd, OCaml, Ruby, Scheme |
detect | Ruby |
lsearch | Tcl |
find_all | OCaml, Ruby |
filter | Haskell, Mercury, merd, OCaml, Python, Scheme |
grep | Perl |
select | Ruby |
reject | Ruby |
[ x | x <- l, p x ] (11) | Haskell |
[ x for x in l if p(x) ] (11) | Python |
foldl | Haskell, Mercury, merd |
fold_left | OCaml |
fold | Scheme |
reduce | CommonLisp, Python |
inject | Ruby, Smalltalk |
foldr | Haskell, Mercury, merd |
fold-right | Scheme |
fold_right | OCaml |
partition | Haskell, merd, OCaml, Scheme |
member? | merd, Ruby |
include? | Ruby |
mem | OCaml |
member | Scheme |
in | Python |
in_array | PHP |
elem | Haskell, Mercury |
any | Haskell, Mercury, Scheme |
any? | Ruby |
exists | OCaml |
exists? | merd |
all | Haskell, Mercury |
all? | merd, Ruby |
for_all | OCaml |
every | Scheme |
min/max | Python, Ruby, Scheme |
minimum/maximum | Haskell, Mercury, merd |
to_a | Ruby |
to_list | merd |
size | E, merd, Ruby |
length | Haskell, Java, Mercury, OCaml, PostScript, Ruby, Scheme |
len | Python |
llength | Tcl |
getn | Lua |
each_with_index | merd, Ruby |
foreach($a as $i => $v | PHP |
for i => v in l | E |
foreachi | Lua |
sort | E, Haskell, Lua, merd, OCaml, Perl, PHP, Python, Ruby, Scheme |
sort_by | merd |
sortBy | Haskell |
lsort | Tcl |
uniq | merd, Ruby |
nub | Haskell |
array_unique | PHP |
delete-duplicates | Scheme |
lsort -unique | Tcl |
combine | OCaml |
zip | Haskell, merd, Python, Scheme |
split | OCaml |
unzip | Haskell, merd |
unzip2 | Scheme |
reverse | Haskell, Mercury, merd, Perl, Python, Ruby, Scheme |
rev | OCaml |
array_reverse | PHP |
lookup | Haskell |
assoc | OCaml, Ruby, Scheme |
** | E, OCaml, Perl, Python, Ruby |
^ | Haskell, Lua |
pow | C, C++, Java, PHP, Python, Tcl |
power | Delphi/Kylix |
exp | PostScript |
sqrt/exp/abs | C, C++, E, Java, Lua, Pascal, Perl, PHP, Python, Ruby, tcl |
sqrt//abs | PostScript |
cos/sin/tan | C, C++, E, Java, Lua, Pascal, PHP, Python, Ruby, Tcl |
cos/sin/ | Perl, PostScript |
log/log10 | C, C++, Lua, PHP, Python, Ruby, Tcl |
ln/ | Pascal |
ln/log10 | Delphi/Kylix |
ln/log | PostScript |
log/ | E, Java, Perl |
divmod | Python, Ruby |
modulo of -3 / 2 is 1
% | Perl, Python, Ruby, Tcl |
%% | E |
modulo | Ruby |
modulo of -3 / 2 is -1
% | C, C++, E, Java, PHP |
mod | Lua, Pascal, PostScript |
remainder | Ruby |
round/floor/ceil | C, C++, E, Java, Lua, PHP, Python, Ruby, Tcl |
round/floor/ceiling | PostScript |
This document is licensed under GFDL (GNU Free Documentation License).