|
|
||
|
> 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).