Skip to content

Instantly share code, notes, and snippets.

@Carreau
Created August 6, 2013 10:16
Show Gist options
  • Select an option

  • Save Carreau/6163355 to your computer and use it in GitHub Desktop.

Select an option

Save Carreau/6163355 to your computer and use it in GitHub Desktop.
a test of documenting julia in notebook.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"A Julia Notebook Test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a test to see how julia look like as a language (and basically I'll use it to learn julia). You will note that this is done in an IPython Notebook, so there are probably still some assumption of the syntax beeing python for the highlighting.\n",
"\n",
"Until all the julia documentation is ported to IPython Notebook, you can refer to [original Julia doc](http://docs.julialang.org/en/release-0.1-0/manual/introduction/)."
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's try to reproduce one of julia [manual page about variables](https://julia.readthedocs.org/en/latest/manual/variables/) from the dev documentation, we can't have nice references crosslink for now, but let's focus on content."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Julia provides an extremely flexible system for naming variables.\n",
"Capitalization carries no semantic meaning, nor does the first letter of a\n",
"variable."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ix = 1.0"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"1.0"
]
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"y = -3"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
"-3"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"z = \"My String\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"My String"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"customary_phrase = \"Hello world!\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"Hello world!"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"UniversalDeclarationOfHumanRightsStart = \"\u4eba\u4eba\u751f\u800c\u81ea\u7531\uff0c\u5728\u5c0a\u4e25\u548c\u6743\u529b\u4e0a\u4e00\u5f8b\u5e73\u7b49\u3002\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"\u4eba\u4eba\u751f\u800c\u81ea\u7531\uff0c\u5728\u5c0a\u4e25\u548c\u6743\u529b\u4e0a\u4e00\u5f8b\u5e73\u7b49\u3002"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"They can even be given Unicode names:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\u03b4 = 0.00001"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"1.0e-5"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\uc548\ub155\ud558\uc138\uc694 = \"Hello\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"Hello"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Julia will even let you redefine built-in constants and functions if needed:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pi"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"\u03c0 = 3.1415926535897..."
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pi = 3"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"3"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"Warning: imported binding for pi overwritten in module Main\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pi"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"3"
]
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sqrt = 4"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"4"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"However, this is obviously not recommended to avoid potential confusion.\n",
"\n",
"The only explicitly disallowed names for variables are the names of built-in statements:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"else = false"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "LoadError",
"evalue": "syntax: unexpected else\nat In[12]:1",
"output_type": "pyerr",
"traceback": [
"syntax: unexpected else\nat In[12]:1"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"try = \"No\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "LoadError",
"evalue": "syntax: unexpected =\nat In[13]:1",
"output_type": "pyerr",
"traceback": [
"syntax: unexpected =\nat In[13]:1"
]
}
],
"prompt_number": 13
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Stylistic Convention"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"While Julia imposes few restrictions on valid names, it has become useful to adopt the following conventions on names in Julia:\n",
"\n",
" - Names of variables are in lower case, with word separation indicated by underscores ('`_`').\n",
" - Names of `Type`s begin with a capital letter and word separation is shown with CamelCase instead of underscores.\n",
" - Names of `function`s and `macro`s are in lower case, without underscores.\n",
" - Functions that modify their inputs have names that end in `!`. These functions are sometimes called mutating functions or in-place functions."
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment