A quick and dirty syntax translation / conversion reference guide to ease the transition between Python and Julia. This is not meant as a reference to the language. For that you should [read the manual](http://julia.readthedocs.org/en/latest/manual/).
## Some important differences
* Arrays in Julia are indexed starting from 1.
* In Julia classes (i.e. types) don't own methods. Methods are implementations of generic functions and are invoked in a "static style", i.e. instead of Python's str1.rstrip(), we will have rstrip( str1 ), instead of file1.close(), close( file1 ).
## Some important similarities.
*
## Core
[Getting around: All objects](http://docs.julialang.org/en/release-0.1/stdlib/base/#all-objects)
| *Python* | *Julia* | *Comments* |
| -------------------------|---------|----------|
| `True` | `true` | |
| `False` | `false` | |
| `None` | `nothing` | |
| `type( obj )` | `typeof( obj )` | |
| `{}` | `Dict{KeyType,ValueType}()` | |
| `elif` | `elseif` | |
| `lambda x, y : y + x * 2` | `(x,y) -> y + x * 2` | |
| `"string %s interpolation %d" % ( str1, i1)` | `"string $str1 interpolation $i1 "` | You can interpolate arbitrary expressions by enclosing them in braces, as in `"${x+y}"` |
| `xrange(10,4,-2`)` | `10:-2:4` | |
| `range(10,4,-2)` | `[10:-2:4]` | Do this only if you really have to, as it will consume memory proportional to the length of the range |
| `id( obj )` | `object_id( obj )` | |
| `raise excetion` | `throw( exception )` |
| `obj.fun( x, y)` | `fun( obj, x, y)`
with [Lazy.jl](https://github.com/one-more-minute/Lazy.jl)
@> obj f(x,y) | ## Basic String operations
| *Python* | *Julia* |
| -------------------------|-----------|
| `str1 + str2 + str2` | `string( str1, str2, str3 )` |
| `len( str1 )` | `length( str1 )` |
| `str1.rstrip()` | `rstrip( str1 )` |
| `str1.startswith( x )` | ??? write your own such as the one in [pytojul.jl](https://gist.github.com/cuckookernel/9777067#file-pytojul-jl) |
## Regular expressions
| *Python* | *Julia* |
|----------|---------|
| m = re.match( r"(\d+):(\d+)", mystr ) | m = match( r"(\d+):(\d+)", mystr ) |
| m is not None | m != nothing |
| arr = m.groups() | arr = m.captures |
## File processing
| *Python* | *Julia* |
|----------|---------|
| f = open( "file.txt" ) | f = open( "file.txt") |
| for line in f | for line in eachline( f ) |
| f.close() | close( f ) |
## Exceptions
(http://julia.readthedocs.org/en/latest/manual/control-flow/#exception-handling)
| *Python* | *Julia* |
|----------|---------|
| `raise excetion` | `throw( exception )` |
| RuntimeError( "msg" ) | (?) ErrorException( "msg" ) |