Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ac8abbc

Browse files
authored
Merge branch 'master' into patch-1
2 parents 1c6de72 + ceb9874 commit ac8abbc

21 files changed

+851
-727
lines changed

.flake8

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[flake8]
2+
max-line-length = 100
3+
ignore = E121,E123,E126,E221,E222,E225,E226,E242,E701,E702,E704,E731,W503,F405

CONTRIBUTING.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
How to Contribute to aima-python
22
==========================
33

4-
Thanks for considering contributing to `aima-python`! Here is some of the work that needs to be done:
4+
Thanks for considering contributing to `aima-python`! Whether you are an aspiring [Google Summer of Code](https://summerofcode.withgoogle.com/organizations/5663121491361792/) student, or an independent contributor, here is a guide to how you can help:
5+
6+
## Read the Code and Start on an Issue
7+
8+
- First, read and understand the code to get a feel for the extent and the style.
9+
- Look at the [issues](https://github.com/aimacode/aima-python/issues) and pick one to work on.
10+
- One of the issues is that some algorithms are missing from the [list of algorithms](https://github.com/aimacode/aima-python/blob/master/README.md#index-of-algorithms).
511

612
## Port to Python 3; Pythonic Idioms; py.test
713

@@ -31,7 +37,8 @@ Beyond the above rules, we use [Pep 8](https://www.python.org/dev/peps/pep-0008)
3137
- I have set `--max-line-length 100`, not 79.
3238
- You don't need two spaces after a sentence-ending period.
3339
- Strunk and White is [not a good guide for English](http://chronicle.com/article/50-Years-of-Stupid-Grammar/25497).
34-
- I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/).
40+
- I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/). In most cases,
41+
a one-line docstring suffices. It is rarely necessary to list what each argument does; the name of the argument usually is enough.
3542
- Not all constants have to be UPPERCASE.
3643
- At some point I may add [Pep 484](https://www.python.org/dev/peps/pep-0484/) type annotations, but I think I'll hold off for now;
3744
I want to get more experience with them, and some people may still be in Python 3.4.
@@ -40,7 +47,7 @@ Beyond the above rules, we use [Pep 8](https://www.python.org/dev/peps/pep-0008)
4047
Contributing a Patch
4148
====================
4249

43-
1. Submit an issue describing your proposed change to the repo in question.
50+
1. Submit an issue describing your proposed change to the repo in question (or work on an existing issue).
4451
1. The repo owner will respond to your issue promptly.
4552
1. Fork the desired repo, develop and test your code changes.
4653
1. Submit a pull request.
@@ -88,15 +95,15 @@ Then you can run the testsuite with::
8895
# Choice of Programming Languages
8996

9097
Are we right to concentrate on Java and Python versions of the code? I think so; both languages are popular; Java is
91-
fast enough for our purposes, and has reasonable type declarations (but can be verbose); Python is popular and has a very direct mapping to the pseudocode in the book (but lacks type declarations and can be slow). The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top five most popular languages are:
98+
fast enough for our purposes, and has reasonable type declarations (but can be verbose); Python is popular and has a very direct mapping to the pseudocode in the book (but lacks type declarations and can be slow). The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top seven most popular languages, in order, are:
9299

93-
Java, C, C++, C#, Python
100+
Java, C, C++, C#, Python, PHP, Javascript
94101

95-
So it might be reasonable to also support C++/C# at some point in the future. It might also be reasonable to support a language that combines the terse readability of Python with the type safety and speed of Java; perhaps Go or Julia. And finally, Javascript is the language of the browser; it would be nice to have code that runs in the browser, in Javascript or a variant such as Typescript.
102+
So it might be reasonable to also support C++/C# at some point in the future. It might also be reasonable to support a language that combines the terse readability of Python with the type safety and speed of Java; perhaps Go or Julia. I see no reason to support PHP. Javascript is the language of the browser; it would be nice to have code that runs in the browser without need for any downloads; this would be in Javascript or a variant such as Typescript.
96103

97-
There is also a `aima-lisp` project; in 1995 when we wrote the first edition of the book, Lisp was the right choice, but today it is less popular.
104+
There is also a `aima-lisp` project; in 1995 when we wrote the first edition of the book, Lisp was the right choice, but today it is less popular (currently #31 on the TIOBE index).
98105

99-
What languages are instructors recommending for their AI class? To get an approximate idea, I gave the query <tt>[norvig russell "Modern Approach"](https://www.google.com/webhp#q=russell%20norvig%20%22modern%20approach%22%20java)</tt> along with the names of various languages and looked at the estimated counts of results on
106+
What languages are instructors recommending for their AI class? To get an approximate idea, I gave the query <tt>[\[norvig russell "Modern Approach"\]](https://www.google.com/webhp#q=russell%20norvig%20%22modern%20approach%22%20java)</tt> along with the names of various languages and looked at the estimated counts of results on
100107
various dates. However, I don't have much confidence in these figures...
101108

102109
|Language |2004 |2005 |2007 |2010 |2016 |

0 commit comments

Comments
 (0)