[WIP] Import from http://pike.lysator.liu.se/docs/tutorial/

Source material: 9f05ab1e has remaining xml files. Some files, mostly those that have the SiteBuilder `<metadata>` block left in them, are duplicates with either other xml files, or files already converted to Markdown.

Text formatting convention used: [semantic linefeeds](http://rhodesmill.org/brandon/2012/one-sentence-per-line/), as summarized in this self-documenting example:

```
  By starting a new line at the end of each sentence,
  and splitting sentences themselves
  at natural breaks between clauses,
  a text file becomes far easier to edit and version control.
```

Also, aspirationally: 80 char lines at most, but for tables and the like, visual end results is what matters.

Conversion method: convert all tags to their markdown equivalents

  * `<list>`+`<item>` => numbered, bullet or definition lists
  * `<comment>` => nuke
  * `<interactive>` => put in triple-backtick escape + prefix `<in>` bits with a `> ` prompt + strip `<out>` tags
  * `<h1>` => `## header`

Progress:

* [x] [Introduction](introduction/index.md)
  * [x] [What is Pike?](introduction/index.md)
  * [x] [What Does Pike Look Like?](introduction/first_glance.md)
  * [x] [Pike and Some Other Languages](introduction/language_comparison.md)
  * [x] [Reading this Tutorial](introduction/reading_this_tutorial.md)

* [x] [First Steps](hello/index.md)
  * [x] [Hello World](hello/index.md)
  * [x] [I Want My Greeting in a Window!](hello/window.md)
  * [x] [Interactive Pike](hello/interactive.md)

* [x] [Fundamental Concepts](fundamentals/index.md)
  * [x] [Terminology / Glossary](fundamentals/index.md)

* [x] [Your Second Pike Program](browser/index.md)
  * [x] [The Bare Bones](browser/index.md)
  * [x] [Running the Program](browser/invocation.md)
  * [x] [Command-line Arguments and if](browser/arguments_and_if.md)
  * [x] [Methods and Loops](browser/methods_and_loops.md)
  * [x] [Magic Web Stuff](browser/fetching_the_page.md)
  * [x] [Syntactic Sugar](browser/convenient_syntax.md)
  * [x] [Showing the Page](browser/show_page.md)
  * [x] [Some Notes About WWW](browser/about_www.md)

* [x] [An Introduction to Data Types](data_types/index.md)
  * [x] [What is a data type?](data_types/index.md)
  * [x] [Basic Types](data_types/basic_types.md)
  * [x] [Container Types](data_types/container_types.md)
  * [x] [Object, Program and Function](data_types/other_types.md)
  * [x] [Variable Definitions](data_types/variable_definitions.md)
  * [x] [Basic Types and Reference Types](data_types/reference_types.md)

* [x] [Methods](methods/index.md)
  * [x] [An Introduction](methods/index.md)
  * [x] [Calling a method](methods/invocation.md)
  * [x] [More Advanced Examples](methods/advanced.md)

* [x] [Object-Oriented Programming](oop/index.md)
  * [x] [Object Orientation in General](oop/index.md)
  * [x] [Object Orientation in Pike](oop/oo_in_pike.md)
  * [x] [Creating and Using Objects](oop/creation_and_usage.md)
  * [x] [How to Create a Class](oop/create.md)
  * [x] [Classes as Record Types](oop/grouping_data.md)
  * [x] [Programs are Classes and Vice Versa](oop/programs.md)
  * [x] [Inheritance](oop/inheritance.md)
  * [x] [Multiple Inheritance](oop/multiple_inheritance.md)
  * [x] [Access control](oop/access_control.md)

* [x] [Statements](statements/index.md)
  * [x] [Choosing between Alternatives](statements/index.md)
  * [x] [Repetition (or "Loops")](statements/loops.md)
  * [x] [Other Statement Types](statements/others.md)

* [ ] [More About Data Types](data_types_2/index.md)
  * [x] [The Basic Types](data_types_2/index.md)
  * [ ] [Container Types](data_types_2/container_types.md)
  * [ ] [The Other Reference Types](data_types_2/other_types.md)

* [ ] [Working with Strings](strings/index.md)
  * [ ] [Operators on Strings](strings/index.md)
  * [ ] [Built-in Functions for Strings](strings/builtins.md)
  * [ ] [Composing Strings with sprintf](strings/sprintf.md)
  * [ ] [Analyzing Strings with sscanf](strings/sscanf.md)
  * [ ] [Wide Strings](strings/widestrings.md)

* [ ] [Expressions](expressions/index.md)
  * [ ] [Some Terminology](expressions/index.md)
  * [ ] [Arithmetical Operations](expressions/arithmetics.md)
  * [ ] [Operations on Complex Types](expressions/complex_types.md)
  * [ ] [Comparison](expressions/comparison.md)
  * [ ] [Logical Expressions](expressions/logical.md)
  * [ ] [Bitwise Operations](expressions/bitwise.md)
  * [ ] [Operations on Sets](expressions/set_operations.md)
  * [ ] [Indexing](expressions/indexing.md)
  * [ ] [Assignment](expressions/assignment.md)
  * [ ] [Type Conversions](expressions/casting.md)
  * [ ] [The Comma Operator](expressions/comma.md)
  * [ ] [Call and Splice](expressions/call_and_splice.md)
  * [ ] [Operator Precedence and Associativity](expressions/operator_tables.md)

* [ ] [The Preprocessor](preprocessor/index.md)
  * [ ] [Preprocessor Directives](preprocessor/index.md)

* [ ] [Modules](modules/index.md)
  * [ ] [Some Examples of Modules](modules/index.md)
  * [ ] [How Do You Use a Module?](modules/usage.md)
  * [ ] [How Do You Create a Module?](modules/creating.md)
  * [ ] [How Does Pike Find the Modules?](modules/resolving.md)

* [ ] [Errors and Error Handling](error/index.md)
  * [ ] [Error Messages from Pike](error/index.md)
  * [ ] [Error Handling: the Concept](error/concept.md)
  * [ ] [Detecting an Error](error/detection.md)
  * [ ] [Handling the Error](error/handling.md)
  * [ ] [Error Codes](error/codes.md)
  * [ ] [`catch` and `throw`](error/exceptions.md)

* [x] [Not Covered Here](not_covered/index.md)

On Sun, 7 Dec 2014, Johan Sundström wrote:

>> +}
>> +```
>> +
>> +The value of `(x1 + x2) / 2` will be calculated,
>> +giving **20.0**.
>> +This value is then returned to the point where the method was called,
>> +and is used as the value of the method-call expression.
>> +
>> +Note that Pike uses "call by value".
>> +This means that Pike always calculates the value of the arguments
>> +before calling a method,
>> +and then it sends those values
>> +(or, more precisely: copies of those values)
>> +to the called method.
>> +This means that in the example
>> +
>
> In the original xml markup, there was a hidden comment:
>
> ```xml
> <comment>Wrong!</comment>
> ```
>
> right here. If anyone has constructive input on what that is about and 
> if we should change something here, speak up. :-)

I suspect that it has to do with that some types are reference types, so 
that no actual copying of the perceived value is performed for them.

 	/grubba

-- 
Henrik Grubbström					grubba@grubba.org
Roxen Internet Software AB				grubba@roxen.com