This commit is contained in:
Geoff Liu 2014-11-11 17:42:28 -08:00
commit 9d8d871005
7 changed files with 46 additions and 25 deletions

View File

@ -14,12 +14,12 @@ properly!
## Contributing ## Contributing
All contributions welcome, from the tiniest typo to a brand new article. Translations All contributions are welcome, from the tiniest typo to a brand new article. Translations
in all languages are welcome (or, for that matter, original articles in any language). in all languages are welcome (or, for that matter, original articles in any language).
Send a pull request or open an issue any time of day or night. Send a pull request or open an issue any time of day or night.
**Please tag your issues pull requests with [language/lang-code] at the beginning** **Please tag your issues pull requests with [language/lang-code] at the beginning**
**(e.g. [python/en] for english python).** This will help everyone pick out things they **(e.g. [python/en] for English Python).** This will help everyone pick out things they
care about. care about.
### Style Guidelines ### Style Guidelines
@ -27,7 +27,7 @@ care about.
* **Keep lines under 80 chars** * **Keep lines under 80 chars**
* **Prefer example to exposition** * **Prefer example to exposition**
* **Eschew surplusage** * **Eschew surplusage**
* **Use utf-8** * **Use UTF-8**
Long version: Long version:
@ -38,28 +38,28 @@ Long version:
* We welcome newcomers, but the target audience for this site is programmers with some experience. * We welcome newcomers, but the target audience for this site is programmers with some experience.
So, try to avoid explaining basic concepts except for those specific to the language in question, So, try to avoid explaining basic concepts except for those specific to the language in question,
to keep articles succinct and scannable. We all know how to use google here. to keep articles succinct and scannable. We all know how to use Google here.
* For translations (or english articles with non-ASCII characters), please make sure your file is * For translations (or English articles with non-ASCII characters), please make sure your file is
utf-8 encoded, and try to leave out the byte-order-mark at the start of the file. (`:set nobomb` in vim) UTF-8 encoded, and try to leave out the byte-order-mark at the start of the file. (`:set nobomb` in Vim)
### Header configuration ### Header configuration
The actual site uses Middleman to generate HTML files from these markdown ones. Middleman, or at least The actual site uses Middleman to generate HTML files from these Markdown ones. Middleman, or at least
the custom scripts underpinning the site, required that some key information be defined in the header. the custom scripts underpinning the site, required that some key information be defined in the header.
The following fields are necessary for english articles about programming languages: The following fields are necessary for English articles about programming languages:
* **language** The *programming language* in question * **language** The *programming language* in question
* **contributors** A list of [author, url] lists to credit * **contributors** A list of [author, URL] lists to credit
Other fields: Other fields:
* **filename**: The filename for this article's code. It will be fetched, mashed together, and made downloadable. * **filename**: The filename for this article's code. It will be fetched, mashed together, and made downloadable.
For non-english articles, *filename* should have a language-specific suffix. For non-English articles, *filename* should have a language-specific suffix.
* **lang**: For translations, the human language this article is in. For categorization, mostly. * **lang**: For translations, the human language this article is in. For categorization, mostly.
Here's an example header for an esperanto translation of Ruby: Here's an example header for an Esperanto translation of Ruby:
```yaml ```yaml
--- ---

View File

@ -1149,7 +1149,7 @@ my @list = 1, 3, 9 ... * > 30; # you can use a predicate
# (with the Whatever Star, here). # (with the Whatever Star, here).
my @list = 1, 3, 9 ... { $_ > 30 }; # (equivalent to the above) my @list = 1, 3, 9 ... { $_ > 30 }; # (equivalent to the above)
my @fib = 1, 1, *+* ... *; # lazy infinite list of prime numbers, my @fib = 1, 1, *+* ... *; # lazy infinite list of fibonacci series,
# computed using a closure! # computed using a closure!
my @fib = 1, 1, -> $a, $b { $a + $b } ... *; # (equivalent to the above) my @fib = 1, 1, -> $a, $b { $a + $b } ... *; # (equivalent to the above)
my @fib = 1, 1, { $^a + $^b } ... *; #(... also equivalent to the above) my @fib = 1, 1, { $^a + $^b } ... *; #(... also equivalent to the above)

View File

@ -7,21 +7,21 @@ contributors:
filename: learnpython.py filename: learnpython.py
--- ---
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popular Python was created by Guido Van Rossum in the early 90s. It is now one of the most popular
languages in existence. I fell in love with Python for its syntactic clarity. It's basically languages in existence. I fell in love with Python for its syntactic clarity. It's basically
executable pseudocode. executable pseudocode.
Feedback would be highly appreciated! You can reach me at [@louiedinh](http://twitter.com/louiedinh) or louiedinh [at] [google's email service] Feedback would be highly appreciated! You can reach me at [@louiedinh](http://twitter.com/louiedinh) or louiedinh [at] [google's email service]
Note: This article applies to Python 2.7 specifically, but should be applicable Note: This article applies to Python 2.7 specifically, but should be applicable
to Python 2.x. Look for another tour of Python 3 soon! to Python 2.x. For Python 3.x, take a look at the Python 3 tutorial.
```python ```python
# Single line comments start with a number symbol. # Single line comments start with a number symbol.
""" Multiline strings can be written """ Multiline strings can be written
using three "'s, and are often used using three "s, and are often used
as comments as comments
""" """
@ -55,7 +55,7 @@ to Python 2.x. Look for another tour of Python 3 soon!
# Modulo operation # Modulo operation
7 % 3 # => 1 7 % 3 # => 1
# Exponentiation (x to the y'th power) # Exponentiation (x to the yth power)
2**4 # => 16 2**4 # => 16
# Enforce precedence with parentheses # Enforce precedence with parentheses

View File

@ -7,7 +7,7 @@ contributors:
filename: learnpython3.py filename: learnpython3.py
--- ---
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popular Python was created by Guido Van Rossum in the early 90s. It is now one of the most popular
languages in existence. I fell in love with Python for its syntactic clarity. It's basically languages in existence. I fell in love with Python for its syntactic clarity. It's basically
executable pseudocode. executable pseudocode.
@ -20,7 +20,7 @@ Note: This article applies to Python 3 specifically. Check out the other tutoria
# Single line comments start with a number symbol. # Single line comments start with a number symbol.
""" Multiline strings can be written """ Multiline strings can be written
using three "'s, and are often used using three "s, and are often used
as comments as comments
""" """
@ -51,7 +51,7 @@ Note: This article applies to Python 3 specifically. Check out the other tutoria
# Modulo operation # Modulo operation
7 % 3 # => 1 7 % 3 # => 1
# Exponentiation (x to the y'th power) # Exponentiation (x to the yth power)
2**4 # => 16 2**4 # => 16
# Enforce precedence with parentheses # Enforce precedence with parentheses

View File

@ -10,6 +10,7 @@ contributors:
- ["Marcos Brizeno", "http://www.about.me/marcosbrizeno"] - ["Marcos Brizeno", "http://www.about.me/marcosbrizeno"]
- ["Ariel Krakowski", "http://www.learneroo.com"] - ["Ariel Krakowski", "http://www.learneroo.com"]
- ["Dzianis Dashkevich", "https://github.com/dskecse"] - ["Dzianis Dashkevich", "https://github.com/dskecse"]
- ["Levi Bostian", "https://github.com/levibostian"]
--- ---
@ -271,6 +272,19 @@ else
end end
#=> "OK job" #=> "OK job"
# exception handling:
begin
# code here that might raise an exception
raise NoMemoryError, 'You ran out of memory.'
rescue NoMemoryError => exception_variable
puts 'NoMemoryError was raised', exception_variable
rescue RuntimeError => other_exception_variable
puts 'RuntimeError was raised now'
else
puts 'This runs if no exceptions were thrown at all'
ensure
puts 'This code always runs no matter what'
end
# Functions # Functions

View File

@ -100,7 +100,7 @@ true == false // false
"Scala strings are surrounded by double quotes" "Scala strings are surrounded by double quotes"
'a' // A Scala Char 'a' // A Scala Char
'Single quote strings don't exist' // Error // 'Single quote strings don't exist' <= This causes an error
// Strings have the usual Java methods defined on them // Strings have the usual Java methods defined on them
"hello world".length "hello world".length
@ -204,6 +204,7 @@ def showNumbersInRange(a:Int, b:Int):Unit = {
if (a < b) if (a < b)
showNumbersInRange(a + 1, b) showNumbersInRange(a + 1, b)
} }
showNumbersInRange(1,14)
// Conditionals // Conditionals
@ -218,9 +219,6 @@ if (x == 11) println ("yeah") else println("nay")
println(if (x == 10) "yeah" else "nope") println(if (x == 10) "yeah" else "nope")
val text = if (x == 10) "yeah" else "nope" val text = if (x == 10) "yeah" else "nope"
var i = 0
while (i < 10) { println("i " + i); i+=1 }
################################################# #################################################
## 4. Data Structures ## 4. Data Structures
@ -292,7 +290,8 @@ d._2
And now we will explain what these are. And now we will explain what these are.
*/ */
class Dog { class Dog(br: String) {
var breed: String = br
//A method called bark, returning a String //A method called bark, returning a String
def bark: String = { def bark: String = {
// the body of the method // the body of the method
@ -300,6 +299,11 @@ class Dog {
} }
} }
val mydog = new Dog("greyhound")
println(mydog.breed) // => "greyhound"
println(mydog.bark) // => "Woof, woof!"
// Classes can contain nearly any other construct, including other classes, // Classes can contain nearly any other construct, including other classes,
// functions, methods, objects, case classes, traits etc. // functions, methods, objects, case classes, traits etc.
@ -388,6 +392,7 @@ sSquared.reduce (_+_)
// The filter function takes a predicate (a function from A -> Boolean) and // The filter function takes a predicate (a function from A -> Boolean) and
// selects all elements which satisfy the predicate // selects all elements which satisfy the predicate
List(1, 2, 3) filter (_ > 2) // List(3) List(1, 2, 3) filter (_ > 2) // List(3)
case class Person(name:String, phoneNumber:String)
List( List(
Person(name = "Dom", age = 23), Person(name = "Dom", age = 23),
Person(name = "Bob", age = 30) Person(name = "Bob", age = 30)
@ -396,6 +401,7 @@ List(
// Scala a foreach method defined on certain collections that takes a type // Scala a foreach method defined on certain collections that takes a type
// returning Unit (a void method) // returning Unit (a void method)
val aListOfNumbers = List(1, 2, 3, 4, 10, 20, 100)
aListOfNumbers foreach (x => println(x)) aListOfNumbers foreach (x => println(x))
aListOfNumbers foreach println aListOfNumbers foreach println

View File

@ -6,7 +6,8 @@ contributors:
- ["Andre Polykanine", "https://github.com/Oire"] - ["Andre Polykanine", "https://github.com/Oire"]
translators: translators:
- ["Geoff Liu", "http://geoffliu.me"] - ["Geoff Liu", "http://geoffliu.me"]
filename: learnpython3.py filename: learnpython3-cn.py
lang: zh-cn
--- ---
Python是由吉多·范罗苏姆(Guido Van Rossum)在90年代早期设计。它是如今最常用的编程 Python是由吉多·范罗苏姆(Guido Van Rossum)在90年代早期设计。它是如今最常用的编程