mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
Compare commits
134 Commits
0ef979f937
...
9867253a28
Author | SHA1 | Date | |
---|---|---|---|
|
9867253a28 | ||
|
3536315083 | ||
|
981431528b | ||
|
0b375fe86c | ||
|
c975a23edc | ||
|
0cbd69c22f | ||
|
bc3598b1cd | ||
|
3c1b4e752d | ||
|
be43ada53d | ||
|
33e459864c | ||
|
54fbf0a948 | ||
|
fa95b37b6f | ||
|
572827b39f | ||
|
5d0fe40db8 | ||
|
77e2233bf3 | ||
|
ccdb3504c9 | ||
|
a7068ea636 | ||
|
d19c7b0a00 | ||
|
d80cc3caeb | ||
|
8e94abc88b | ||
|
39727a7971 | ||
|
da7182cb2e | ||
|
7ecb9a7de6 | ||
|
0175e37c75 | ||
|
f4d4fb76ba | ||
|
774ae2c45a | ||
|
7678771275 | ||
|
990878a11f | ||
|
f1b0bb5413 | ||
|
90d544271e | ||
|
fa0e3c632f | ||
|
9633245669 | ||
|
742574706b | ||
|
495272cff9 | ||
|
2b9e893079 | ||
|
3623cbab7d | ||
|
6c2b588d9b | ||
|
bacc08e6d8 | ||
|
5938f7f2fc | ||
|
cfb02ca836 | ||
|
f9a27fcb95 | ||
|
afc273c12d | ||
|
0eff0a5115 | ||
|
9cd65058c5 | ||
|
da678b81ac | ||
|
516f5562d2 | ||
|
ec4d8bcc70 | ||
|
4c5c12f788 | ||
|
250f8bbc2a | ||
|
4ea7ca3102 | ||
|
551df16103 | ||
|
9c42a9b624 | ||
|
8638620fcb | ||
|
3854886161 | ||
|
7a327a3fe9 | ||
|
e6a4c99ac1 | ||
|
58f411962e | ||
|
c5e0a1721a | ||
|
d26f363b91 | ||
|
f211a72a74 | ||
|
94601c0b53 | ||
|
8a78f0a79f | ||
|
8ed62278b7 | ||
|
e5821aaa78 | ||
|
f29cae52ed | ||
|
c1e548ef4a | ||
|
aef852af85 | ||
|
63f3055f28 | ||
|
1e27f2435c | ||
|
321ca929a9 | ||
|
04a299bd34 | ||
|
7046c3c418 | ||
|
42edd1f179 | ||
|
80d5b77b80 | ||
|
5a5ae79c53 | ||
|
13086ef433 | ||
|
3512a41177 | ||
|
0272512a20 | ||
|
c64c022ca6 | ||
|
1a54a6dea1 | ||
|
f5572497d9 | ||
|
17c33c33b5 | ||
|
564c7704f4 | ||
|
ffb5b7988e | ||
|
6dc0d4c0ca | ||
|
065116cdd5 | ||
|
0b2e2575c1 | ||
|
b8efa05f34 | ||
|
b0c0ab24d2 | ||
|
c5ab7e679e | ||
|
683d9f848b | ||
|
1e2f2e716c | ||
|
27c5e6bae0 | ||
|
65d8f4221b | ||
|
4e4f47cd8e | ||
|
546b5a9e5c | ||
|
f0eb9dbebd | ||
|
7fd1d03fef | ||
|
c0f47f89cd | ||
|
a86b911e25 | ||
|
2b3dfab146 | ||
|
7052adf4cb | ||
|
cb5aabe5cf | ||
|
a47199942a | ||
|
238ddc43e1 | ||
|
f1c0815916 | ||
|
555e655749 | ||
|
29240ce53d | ||
|
71cb7df1d6 | ||
|
877dc56ed5 | ||
|
43fd63cd11 | ||
|
b4f23c3db6 | ||
|
93d902380d | ||
|
e295a16219 | ||
|
53738440a7 | ||
|
36370c5a52 | ||
|
daa86a4e9b | ||
|
3653c1efcc | ||
|
2c0ab00673 | ||
|
810ab009d5 | ||
|
6acd121c96 | ||
|
9228a93217 | ||
|
8dd93f14df | ||
|
6a7cfde3f7 | ||
|
ad6e1f09bc | ||
|
be1e100e38 | ||
|
08b303dab7 | ||
|
cc9f50c3d8 | ||
|
3c01f30087 | ||
|
da7872160f | ||
|
c21f0c4a24 | ||
|
6414d9d767 | ||
|
93c0c95789 | ||
|
4825b6039d |
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.2'
|
||||
- run: gem install mdl
|
||||
|
@ -67,7 +67,7 @@ Here's an example header for an Esperanto translation of Ruby:
|
||||
|
||||
```yaml
|
||||
*--
|
||||
language: ruby
|
||||
language: Ruby
|
||||
filename: learnruby-epo.ruby
|
||||
contributors:
|
||||
- ["Doktor Esperanto", "http://example.com/"]
|
||||
@ -90,27 +90,26 @@ addition or not.
|
||||
|
||||
## Building the site locally
|
||||
|
||||
You can build the site locally to test your changes. Follow the steps below.
|
||||
Install Ruby. On macOS this can be done with [Homebrew](https://brew.sh/).
|
||||
|
||||
* Install Ruby language runtime and RubyGems. See
|
||||
[here](https://middlemanapp.com/basics/install/)
|
||||
for more details.
|
||||
* Clone or zip download the
|
||||
[learnxinyminutes-site](https://github.com/adambard/learnxinyminutes-site)
|
||||
repository.
|
||||
* `git clone https://github.com/adambard/learnxinyminutes-site`
|
||||
* Install Middleman and other required dependencies using Bundler.
|
||||
* `cd learnxinyminutes-site/`
|
||||
* `bundle install`
|
||||
* Get the source in place
|
||||
* Copy the contents of your clone of the fork of learnxinyminutes-docs repo
|
||||
into the `source/docs` folder. There shouldn't be a `learnxinyminutes-docs`
|
||||
folder inside the `docs` folder, it should just contain all the repo
|
||||
contents.
|
||||
* Checkout your fork of the learnxinyminutes-docs repo as `source/docs`.
|
||||
* `cd source/docs/`
|
||||
* `git clone https://github.com/YOUR-USERNAME/learnxinyminutes-docs ./source/docs/`
|
||||
* Build the site or run a development server to test your changes (NOTE: run
|
||||
these commands at `learnxinyminutes-site/`).
|
||||
* Build - `bundle exec middleman build`
|
||||
* Dev server - `bundle exec middleman --force-polling --verbose`
|
||||
```sh
|
||||
brew install ruby
|
||||
# Install Ruby package manager
|
||||
gem install bundler
|
||||
```
|
||||
|
||||
Then clone two repos, install dependencies and run.
|
||||
|
||||
```sh
|
||||
# Clone website
|
||||
git clone https://github.com/adambard/learnxinyminutes-site
|
||||
# Clone docs (this repo) nested in website
|
||||
git clone https://github.com/<YOUR-USERNAME>/learnxinyminutes-docs ./learnxinyminutes-site/source/docs/
|
||||
|
||||
# Install dependencies
|
||||
cd learnxinyminutes-site
|
||||
bundle install
|
||||
|
||||
# Run
|
||||
bundle exec middleman serve
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: amd
|
||||
tool: AMD
|
||||
contributors:
|
||||
- ["Frederik Ring", "https://github.com/m90"]
|
||||
filename: learnamd.js
|
||||
|
@ -3,7 +3,7 @@ category: framework
|
||||
framework: AngularJS
|
||||
contributors:
|
||||
- ["Walter Cordero", "http://waltercordero.com"]
|
||||
filename: learnangular.html
|
||||
filename: learnangular.txt
|
||||
---
|
||||
|
||||
## AngularJS Tutorial.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: ansible
|
||||
tool: Ansible
|
||||
contributors:
|
||||
- ["Jakub Muszynski" , "http://github.com/sirkubax"]
|
||||
- ["Pat Myron" , "https://github.com/patmyron"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
language: html
|
||||
language: HTML
|
||||
lang: ar-ar
|
||||
filename: learnhtml-tf.html
|
||||
filename: learnhtml-tf.txt
|
||||
contributors:
|
||||
- ["Christophe THOMAS", "https://github.com/WinChris"]
|
||||
translators:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: arturo
|
||||
language: Arturo
|
||||
filename: learnarturo.art
|
||||
contributors:
|
||||
- ["Dr.Kameleon", "https://github.com/drkameleon"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: asciidoc
|
||||
language: AsciiDoc
|
||||
contributors:
|
||||
- ["Ryan Mavilia", "http://unoriginality.rocks/"]
|
||||
- ["Abel Salgado Romero", "https://twitter.com/abelsromero"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: awk
|
||||
tool: AWK
|
||||
filename: learnawk.awk
|
||||
contributors:
|
||||
- ["Marshall Mason", "http://github.com/marshallmason"]
|
||||
|
@ -1,6 +1,5 @@
|
||||
---
|
||||
category: tool
|
||||
tool: bash
|
||||
language: Bash
|
||||
contributors:
|
||||
- ["Max Yankov", "https://github.com/golergka"]
|
||||
- ["Darren Lin", "https://github.com/CogBear"]
|
||||
|
@ -41,8 +41,7 @@ Python быў створаны Гвіда ван Росумам у пачатк
|
||||
10 * 2 # => 20
|
||||
35 / 5 # => 7.0
|
||||
|
||||
# Вынік цэлалікавага дзялення акругляецца як для пазітыўных,
|
||||
# так і для негатыўных значэнняў.
|
||||
# Вынік цэлалікавага дзялення акругляецца ў напрамку мінус бесканечнасці
|
||||
5 // 3 # => 1
|
||||
-5 // 3 # => -2
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: bf
|
||||
language: BF
|
||||
filename: bf.bf
|
||||
contributors:
|
||||
- ["Prajit Ramachandran", "http://prajitr.github.io/"]
|
||||
|
@ -1,7 +1,6 @@
|
||||
---
|
||||
name: perl
|
||||
category: language
|
||||
language: perl
|
||||
language: Perl
|
||||
filename: learnperl-bg.pl
|
||||
contributors:
|
||||
- ["Korjavin Ivan", "http://github.com/korjavin"]
|
||||
|
@ -134,7 +134,7 @@ array_or_atom {2⋆𝕩}↩ #≡ ⟨ 0.125, 0.0625, 0.03125 ⟩
|
||||
'a'-'d' #≡ ¯3
|
||||
|
||||
## Logic Functions
|
||||
∧, ∨, ¬ # For Booleans, retrun 1 or 0
|
||||
∧, ∨, ¬ # For Booleans, return 1 or 0
|
||||
≤, <, >, ≥, = # Vectorizing comparisons
|
||||
≡, ≢ # Nonvectorizing comparisons
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: asciidoc
|
||||
language: AsciiDoc
|
||||
contributors:
|
||||
- ["Ryan Mavilia", "http://unoriginality.rocks/"]
|
||||
translators:
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
name: Go
|
||||
category: language
|
||||
language: Go
|
||||
lang: ca-es
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
name: Groovy
|
||||
category: language
|
||||
language: Groovy
|
||||
lang: ca-es
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
language: html
|
||||
filename: html-ca.md
|
||||
language: HTML
|
||||
filename: html-ca.txt
|
||||
contributors:
|
||||
- ["Christophe THOMAS", "https://github.com/WinChris"]
|
||||
translators:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: kotlin
|
||||
language: Kotlin
|
||||
contributors:
|
||||
- ["S Webber", "https://github.com/s-webber"]
|
||||
translators:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: chapel
|
||||
language: Chapel
|
||||
filename: learnchapel.chpl
|
||||
contributors:
|
||||
- ["Ian J. Bertolacci", "https://www.cs.arizona.edu/~ianbertolacci/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: "clojure macros"
|
||||
language: Clojure macros
|
||||
filename: learnclojuremacros.clj
|
||||
contributors:
|
||||
- ["Adam Bard", "http://adambard.com/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: clojure
|
||||
language: Clojure
|
||||
filename: learnclojure.clj
|
||||
contributors:
|
||||
- ["Adam Bard", "http://adambard.com/"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: cmake
|
||||
tool: CMake
|
||||
contributors:
|
||||
- ["Bruno Alano", "https://github.com/brunoalano"]
|
||||
filename: CMake
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: coffeescript
|
||||
language: CoffeeScript
|
||||
contributors:
|
||||
- ["Tenor Biel", "http://github.com/L8D"]
|
||||
- ["Xavier Yao", "http://github.com/xavieryao"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: coldfusion
|
||||
language: ColdFusion
|
||||
filename: learncoldfusion.cfm
|
||||
contributors:
|
||||
- ["Wayne Boka", "http://wboka.github.io"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: compojure
|
||||
tool: Compojure
|
||||
contributors:
|
||||
- ["Adam Bard", "http://adambard.com/"]
|
||||
filename: learncompojure.clj
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: crystal
|
||||
language: Crystal
|
||||
filename: learncrystal.cr
|
||||
contributors:
|
||||
- ["Vitalii Elenhaupt", "http://veelenga.com"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: bf
|
||||
language: BF
|
||||
contributors:
|
||||
- ["Prajit Ramachandran", "http://prajitr.github.io/"]
|
||||
- ["Mathias Bynens", "http://mathiasbynens.be/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: css
|
||||
language: CSS
|
||||
contributors:
|
||||
- ["Mohammad Valipour", "https://github.com/mvalipour"]
|
||||
- ["Marco Scannadinari", "https://github.com/marcoms"]
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
name: Go
|
||||
category: language
|
||||
language: Go
|
||||
filename: learngo-cs.go
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: javascript
|
||||
language: JavaScript
|
||||
contributors:
|
||||
- ["Leigh Brenecki", "https://leigh.net.au"]
|
||||
- ["Ariel Krakowski", "http://www.learneroo.com"]
|
||||
@ -620,7 +620,7 @@ na stránkách Mozilla Developer Network.
|
||||
[2]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
|
||||
[3]: https://developer.mozilla.org/en-US/docs/Using_the_W3C_DOM_Level_1_Core
|
||||
[4]: http://www.learneroo.com/modules/64/nodes/350
|
||||
[5]: http://bonsaiden.github.io/JavaScript-Garden/
|
||||
[5]: https://shamansir.github.io/JavaScript-Garden/
|
||||
[6]: http://www.amazon.com/gp/product/0596805527/
|
||||
[7]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
|
||||
[8]: http://eloquentjavascript.net/
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: json
|
||||
language: JSON
|
||||
contributors:
|
||||
- ["Anna Harren", "https://github.com/iirelu"]
|
||||
- ["Marco Scannadinari", "https://github.com/marcoms"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: markdown
|
||||
language: Markdown
|
||||
lang: cs-cz
|
||||
contributors:
|
||||
- ["Dan Turkel", "http://danturkel.com/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: sass
|
||||
language: Sass
|
||||
filename: learnsass-cz.scss
|
||||
contributors:
|
||||
- ["Laura Kyle", "https://github.com/LauraNK"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: css
|
||||
language: CSS
|
||||
contributors:
|
||||
- ["Mohammad Valipour", "https://github.com/mvalipour"]
|
||||
- ["Marco Scannadinari", "https://github.com/marcoms"]
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
name: CUE
|
||||
category: language
|
||||
language: CUE
|
||||
filename: learncue.cue
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: cypher
|
||||
language: Cypher
|
||||
filename: LearnCypher.cql
|
||||
contributors:
|
||||
- ["Théo Gauchoux", "https://github.com/TheoGauchoux"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: dart
|
||||
language: Dart
|
||||
filename: learndart.dart
|
||||
contributors:
|
||||
- ["Joao Pedrosa", "https://github.com/jpedrosa/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: asciidoc
|
||||
language: AsciiDoc
|
||||
contributors:
|
||||
- ["Ryan Mavilia", "http://unoriginality.rocks/"]
|
||||
translators:
|
||||
@ -8,8 +8,8 @@ filename: asciidoc-de.adoc
|
||||
lang: de-de
|
||||
---
|
||||
|
||||
AsciiDoc ist eine Auszeichnungssprache, ähnlich zu Markdown. Sie kann für alles
|
||||
verwendet werden von Büchern zu Blogs. Erfunden wurde sie 2002 von Stuart
|
||||
AsciiDoc ist eine Auszeichnungssprache, ähnlich wie Markdown. Sie kann für alles
|
||||
verwendet werden von Büchern bis zu Blogs. Erfunden wurde sie 2002 von Stuart
|
||||
Rackham. Die Sprache ist simpel, aber sie ermöglicht eine große Anzahl an
|
||||
Anpassungen.
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
---
|
||||
category: tool
|
||||
tool: bash
|
||||
language: Bash
|
||||
lang: de-de
|
||||
contributors:
|
||||
- ["Max Yankov", "https://github.com/golergka"]
|
||||
|
@ -36,7 +36,7 @@ if(hour < 12) { /*Operatoren sind genau wie in C*/
|
||||
print "Hallo\n"
|
||||
/* Escape-Sequenzen starten mit einem \ in einem String.
|
||||
Um Escape-Sequenzen klarer zu machen, ist hier eine vereinfachte
|
||||
Liste, welche in bc funktioneren:
|
||||
Liste, welche in bc funktionieren:
|
||||
\b: Backspace
|
||||
\c: carriage return
|
||||
\n: Zeilenumbruch
|
||||
@ -79,7 +79,7 @@ define fac(n) { /*Definiere eine Funktion mit define*/
|
||||
|
||||
num = fac(4) /*24*/
|
||||
|
||||
/*Dies ist ein Beispiel von lokalen Variabeln.*/
|
||||
/*Dies ist ein Beispiel von lokalen Variablen.*/
|
||||
define x(n) {
|
||||
auto x
|
||||
x = 1
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: bf
|
||||
language: BF
|
||||
contributors:
|
||||
- ["Prajit Ramachandran", "http://prajitr.github.io/"]
|
||||
- ["Mathias Bynens", "http://mathiasbynens.be/"]
|
||||
@ -29,10 +29,10 @@ Es gibt acht Befehle:
|
||||
< : Bewegt den Zeiger um eine Stelle zurück.
|
||||
. : Gibt den Wert der aktuellen Zelle als ASCII Wert aus (z.B. 65 = 'A').
|
||||
, : Liest ein einzelnes Zeichen von der Standardeingabe und speichert dessen ASCII Wert in der aktuellen Zelle.
|
||||
[ : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger hinter den
|
||||
[ : Wenn der Wert des aktuellen Elements Null ist, bewege den Zeiger hinter den
|
||||
zugehörigen ]-Befehl.
|
||||
Ansonsten, bewege den Zeiger ein Element weiter.
|
||||
] : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger um eine Stelle
|
||||
] : Wenn der Wert des aktuellen Elements Null ist, bewege den Zeiger um eine Stelle
|
||||
weiter.
|
||||
Ansonsten, bewege den Zeiger hinter den zugehörigen [-Befehl.
|
||||
|
||||
@ -51,7 +51,7 @@ und das Programm hinter dem korrespondierenden ] fortgesetzt).
|
||||
|
||||
An dieser Stelle befinden wir uns an Zelle #1, die jetzt den Wert 0 hat, während Zelle #2
|
||||
den Wert 60 hat. Wir gehen vor zu Zelle #2, inkrementieren 5 Mal, bis zum Wert 65,
|
||||
und geben dann den Wert der Zelle #2 aus. 65 ist ein 'A' im ASCII Zeichensatz,
|
||||
und geben dann den Wert der Zelle #2 aus. 65 ist ein 'A' im ASCII-Zeichensatz,
|
||||
daher wird 'A' am Terminal ausgegeben..
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ Dieses Programm liest ein Zeichen von der Benutzereingabe und schreibt dessen We
|
||||
in Zelle #1. Danach beginnt eine Schleife. Rücke vor auf Zelle #2, erhöhe den Wert der Zelle #2,
|
||||
gehe zurück auf Zelle #1, verringere den Wert der Zelle #1. Dies geht so lange bis
|
||||
Zelle #1 den Wert 0 und Zelle #2 den alten Wert aus #1 hat. Da wir am Ende der Schleife
|
||||
bie Zelle #1 sind, gehe vor zu Zelle #2 und gibt den Wert als ASCII Zeichen aus.
|
||||
bei Zelle #1 sind, gehe vor zu Zelle #2 und gibt den Wert als ASCII Zeichen aus.
|
||||
|
||||
Beachte bitte, dass die Leerzeichen nur aus Gründen der Lesbarkeit geschrieben werden.
|
||||
Man könnte genauso schreiben:
|
||||
|
@ -278,7 +278,7 @@ string retVal = tempObjectFun();
|
||||
// - ein String Objekt wird von "tempObjectFun" zurückgegeben
|
||||
// - ein neuer String wird mit dem zurückgegebenen Objekt als Argument für den Konstruktor erzeugt.
|
||||
// - das zurückgegebene Objekt wird zerstört
|
||||
// Das zurückgegbene Objekt wird temporäres Objekt genannt. Temporäre Objekte werden erzeugt
|
||||
// Das zurückgegebene Objekt wird temporäres Objekt genannt. Temporäre Objekte werden erzeugt
|
||||
// wann immer eine Funktion ein Objekt zurückgibt. Zerstört werden diese am Ende der Auswertung des Ausdrucks
|
||||
// (dies schreibt der Standard vor, aber Compiler sind berechtigt dieses Verhalten zu ändern. Siehe "return value optimization"
|
||||
// für Details). Wie in diesem Code:
|
||||
@ -530,7 +530,7 @@ public:
|
||||
Point (double a, double b) :
|
||||
x(a),
|
||||
y(b)
|
||||
{ /* Außschließliche Initialisierung der Werte */ }
|
||||
{ /* Ausschließliche Initialisierung der Werte */ }
|
||||
|
||||
// Überladung des "+" Operator.
|
||||
Point operator+(const Point& rhs) const;
|
||||
@ -842,7 +842,7 @@ for (int i = 0; i < my_vector.size(); i++)
|
||||
}
|
||||
|
||||
// Oder die Verwendung von Iteratoren:
|
||||
vector<string>::iterator it; // Initialisierng des Iterators.
|
||||
vector<string>::iterator it; // Initialisierung des Iterators.
|
||||
for (it = my_vector.begin(); it != my_vector.end(); ++it)
|
||||
{
|
||||
cout << *it << endl;
|
||||
@ -913,7 +913,7 @@ for (it=mymap.begin(); it!=mymap.end(); ++it)
|
||||
it = mymap.find('Z');
|
||||
cout << it->second;
|
||||
|
||||
// Ausabe: 26
|
||||
// Ausgabe: 26
|
||||
|
||||
// Bemerkung: für "hash maps" sollten die "unordered_map´s" verwendet werden. Diese
|
||||
// sind effizienter und benötigen keine Reihenfolge. "unordered_maps" sind ab
|
||||
|
@ -8,7 +8,7 @@ lang: de-de
|
||||
|
||||
Ach, C. Immer noch **die** Sprache für modernes High-Performance Computing.
|
||||
|
||||
C ist wahrscheinlich die Programmiersprache mit dem niedrigsten Abstraktionsnvieau,
|
||||
C ist wahrscheinlich die Programmiersprache mit dem niedrigsten Abstraktionsniveau,
|
||||
welche die meisten Programmierer je brauchen werden.
|
||||
Die Geschwindigkeit von C ist enorm, allerdings muss man sich stets der
|
||||
manuellen Speicherverwaltung bewusst sein.
|
||||
@ -22,7 +22,7 @@ manuellen Speicherverwaltung bewusst sein.
|
||||
> Standards:
|
||||
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
|
||||
>
|
||||
> Da gewisse Optionen (inbesondere der C-Standard) sehr stark vom Projekt
|
||||
> Da gewisse Optionen (insbesondere der C-Standard) sehr stark vom Projekt
|
||||
> abhängen, lohnt es sich, wenn die unterschiedlichen Optionen genauer
|
||||
> angeschaut werden. Eine Übersicht über die Compiler-Optionen findet man unter
|
||||
> [diesem](https://stackoverflow.com/questions/3375697/useful-gcc-flags-for-c) Stackoverflow-Beitrag.
|
||||
@ -69,7 +69,7 @@ int function_2(void);
|
||||
// Es muss ein Funktionsprototyp deklariert werden vor der `main()` Funktion,
|
||||
// wenn die Funktion nach der `main()` Funktion gebraucht wird.
|
||||
int add_two_ints(int x1, int x2); // Funktionsprototyp
|
||||
// Auch wenn der Ausdrck `int add_two_ints(int, int)` auch valid wäre,
|
||||
// Auch wenn der Ausdruck `int add_two_ints(int, int)` auch valid wäre,
|
||||
// ist es empfohlen, dass man die Namen der Argumente hinschreibt für eine
|
||||
// einfachere Analyse.
|
||||
|
||||
@ -227,7 +227,7 @@ int main (int argc, char** argv) {
|
||||
// Wenn das Argument des `sizeof`-Operator ein Ausdruck ist, dann wird das
|
||||
// Argument nicht ausgewertet (außer Arrays mit variabler Länge)
|
||||
// Der Wert, der in diesem Fall zurückgegeben wird, ist eine Konstante zur
|
||||
// Kompillierzeit.
|
||||
// Kompilierzeit.
|
||||
|
||||
int a = 1;
|
||||
//size_t ist ein vorzeichenloser Integer Typ mit mindestens 2 Byte um die
|
||||
@ -283,7 +283,7 @@ int main (int argc, char** argv) {
|
||||
// repräsentiert. Wir müssen das Null-Byte nicht angeben in String-Literalen;
|
||||
// der Compiler fügt es am Ende des Array automatisch hinzu.
|
||||
char a_string[20] = "Das ist ein String";
|
||||
printf("%s\n", a_string); // %s formattiert einen String
|
||||
printf("%s\n", a_string); // %s formatiert einen String
|
||||
|
||||
printf("%d\n", a_string[18]); // => 0
|
||||
// Hier ist das Byte #19 0 (wie auch Byte #20)
|
||||
@ -394,7 +394,7 @@ int main (int argc, char** argv) {
|
||||
// aus der Header-Datei `<limits.h>` verwendet werden.
|
||||
|
||||
// Integer-Typen können zu Gleitkommazahlen und umgekehrt umgewandelt werden.
|
||||
printf("%f\n", (double) 100); // %f formattiert immer zu einem `double`...
|
||||
printf("%f\n", (double) 100); // %f formatiert immer zu einem `double`...
|
||||
printf("%f\n", (flaot) 100); // ... auch mit einem `float`
|
||||
printf("%d\n", (char)100.0);
|
||||
|
||||
@ -414,7 +414,7 @@ int main (int argc, char** argv) {
|
||||
int x = 0;
|
||||
printf("%p\n", (void *)&x); // verwende & um die Adresse der Variable
|
||||
// zu erhalten
|
||||
// %p formattiert einen Objektpointer des Typen void*)
|
||||
// %p formatiert einen Objektpointer des Typen void*)
|
||||
// => Gibt eine Adresse im Speicher aus
|
||||
|
||||
// Pointer starten mit einem * zu Beginn der Deklaration.
|
||||
@ -437,7 +437,7 @@ int main (int argc, char** argv) {
|
||||
printf("%d\n", *px); // => 1
|
||||
printf("%d\n", x); // => 1
|
||||
|
||||
// Arrays sind eine gute Möglichekit, einen zusammenhängenden Block von
|
||||
// Arrays sind eine gute Möglichkeit, einen zusammenhängenden Block von
|
||||
// Speicher zu allozieren.
|
||||
int x_array[20]; // deklariert einen Array der Größe 20 (Größe kann
|
||||
// nicht geändert werden.)
|
||||
@ -446,7 +446,7 @@ int main (int argc, char** argv) {
|
||||
x_array[xx] 20 -xx;
|
||||
} // Initialisiere x_array zu 20, 19, 18, ... 2, 1
|
||||
|
||||
// Deklariere ein Pointer des Typs int und initalisiere ihn, um auf `x_array`
|
||||
// Deklariere ein Pointer des Typs int und initialisiere ihn, um auf `x_array`
|
||||
// zu zeigen.
|
||||
int *x_ptr = x_array;
|
||||
// x_ptr zeigt jetzt auf den ersten Wert innerhalb des Arrays (int 20)
|
||||
@ -457,7 +457,7 @@ int main (int argc, char** argv) {
|
||||
// Ausnahme: Wenn das Array das Argument des Operators `&` ist.
|
||||
int arr[10];
|
||||
int (*ptr_to_arr)[10] = &arr; //`&arr` ist nicht vom Typ `int *`!
|
||||
// Es ist vom Typem "Pointer auf Array" (aus zehn `int`s)
|
||||
// Es ist vom Typen "Pointer auf Array" (aus zehn `int`s)
|
||||
// oder wenn das Array ein Stringliteral ist, welches gebraucht wird um ein
|
||||
// `char`-Array zu initialisieren.
|
||||
char other_arr[] = "foobarbazquirk";
|
||||
@ -631,7 +631,7 @@ void test_function() {
|
||||
// Variablen mit 0 initialisiert, wenn sie nicht mit einem anderen Startwert
|
||||
// initialisiert werden.
|
||||
// Es ist auch möglich, Funktionen als statisch zu deklarieren, damit diese
|
||||
// `private` sind. Privat heißt, dass sie nur in diesem Kontekt sichtbar sind.
|
||||
// `private` sind. Privat heißt, dass sie nur in diesem Kontext sichtbar sind.
|
||||
|
||||
|
||||
////////////////////////////////////////////////
|
||||
@ -707,12 +707,12 @@ void str_reverse_through_pointer(char *str_in) {
|
||||
// reduziert werden (ähnlich wie Arrays)
|
||||
(*f)(str_in); // Die Funktion einfach mit dem Pointer aufrufen
|
||||
// f(str_in); // Dies ist eine weitere gültige Alternative um eine Funktion
|
||||
// auzurufen.
|
||||
// aufzurufen.
|
||||
}
|
||||
|
||||
/*
|
||||
Solange die Signaturen der Funktionen übereinstimmen, kann man sämtliche Funktionen
|
||||
demselben Pointer zuweisen. Funktionspointer sind auf Grund der Einfacheit und
|
||||
demselben Pointer zuweisen. Funktionspointer sind auf Grund der Einfachheit und
|
||||
Leserlichkeit normalerweise wie folgt `typedef`d
|
||||
*/
|
||||
typedef void (*my_fnp_type)(char *);
|
||||
@ -722,7 +722,7 @@ typedef void (*my_fnp_type)(char *);
|
||||
|
||||
// Spezialzeichen
|
||||
// Im folgenden sin die englischen Begriffe jeweils in Klammern geschrieben,
|
||||
// da diese Begriffe auch im deutschten Sprachgebrauch verwendet werden.
|
||||
// da diese Begriffe auch im deutschen Sprachgebrauch verwendet werden.
|
||||
'\a'; // Alarmzeichen (alert (bell) character)
|
||||
'\n'; // Zeichen für neue Linie (newline character)
|
||||
'\t'; // Tab (tab character (left justifies text))
|
||||
@ -804,7 +804,7 @@ befindet wie die C-Quelldatei.
|
||||
#ifndef EXAMPLE_H /* Wenn EXAMPLE_H noch nicht definiert wurde */
|
||||
#define EXAMPLE_H /* definiere das Makro EXAMPLE_H */
|
||||
|
||||
// Es könenn weitere Header innerhalb eines Headers eingebunden werden, was dazu
|
||||
// Es können weitere Header innerhalb eines Headers eingebunden werden, was dazu
|
||||
// führt, dass diese bereits in anderen Dateien eingebunden wurden. So kann eine
|
||||
// Header-Datei in mehreren Dateien eingebunden werden. zum Beispiel:
|
||||
#include <string.h>
|
||||
@ -832,7 +832,7 @@ typedef struct Node {
|
||||
// Dies kann auch mit Aufzählungen gemacht werden.
|
||||
enum traffic_light_state {GREEN, YELLOW, RED};
|
||||
|
||||
// Funktionsprototypen könenn auch in Header-Dateien definiert werden, um die
|
||||
// Funktionsprototypen können auch in Header-Dateien definiert werden, um die
|
||||
// Funktion in unterschiedlichen Dateien zu verwenden, aber dies wird als schlechte
|
||||
// Praxis angesehen. Definitionen sollten in einer C-Datei erstellt werden.
|
||||
Node create_linked_list(int *value, int length);
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: clojure
|
||||
language: Clojure
|
||||
filename: learnclojure-de.clj
|
||||
contributors:
|
||||
- ["Adam Bard", "http://adambard.com/"]
|
||||
@ -10,7 +10,7 @@ lang: de-de
|
||||
|
||||
Clojure ist ein Lispdialekt, der für die Java Virtual Maschine entwickelt worden ist. Sie hat eine stärkere Betonung auf reine [funktionale Programmierung](https://en.wikipedia.org/wiki/Functional_programming) als Common Lisp. Jedoch besitzt sie je nach Bedarf mehrere [STM](https://en.wikipedia.org/wiki/Software_transactional_memory) Werkzeuge zur Handhabung von Zustand.
|
||||
|
||||
Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig automatisch zu verarbeiten.
|
||||
Diese Verknüpfung erlaubt es, parallele Verarbeitung sehr einfach und häufig automatisch zu verarbeiten.
|
||||
|
||||
(Du brauchst die Clojure Version 1.2 oder neuer)
|
||||
|
||||
@ -23,7 +23,7 @@ Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig au
|
||||
; Der Clojure Leser nimmt an, dass das Erste, was aufgerufen wird
|
||||
; eine Funktion oder ein Makro ist, der Rest sind Argumente.
|
||||
|
||||
; Der erste Aufruf in einer Datei sollte ns sein, um den Namespacezu setzen.
|
||||
; Der erste Aufruf in einer Datei sollte ns sein, um den Namespace zu setzen.
|
||||
(ns learnclojure)
|
||||
|
||||
; Weitere einfache Beispiele:
|
||||
@ -51,9 +51,9 @@ Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig au
|
||||
;;;;;;;;;;;;;
|
||||
|
||||
; Clojure verwendet Javas Objekt Typen für Booleans, Strings und Zahlen.
|
||||
; Verwende `class` um sie zu inszipieren.
|
||||
(class 1) ; Integer Literalte sind standardmäßig java.lang.Long
|
||||
(class 1.); Float Literale sind java.lang.Double
|
||||
; Verwende `class` um sie zu inspizieren.
|
||||
(class 1) ; Integer-Literale sind standardmäßig java.lang.Long
|
||||
(class 1.); Float-Literale sind java.lang.Double
|
||||
(class ""); Strings sind immer in doppelten Anführungszeichen notiert und sind java.lang.String
|
||||
(class false) ; Booleans sind java.lang.Boolean
|
||||
(class nil); Der "null" Wert heißt nil
|
||||
@ -66,7 +66,7 @@ Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig au
|
||||
; Du kannst eine zitierte Liste evaluieren
|
||||
(eval '(+ 1 2)) ; => 3
|
||||
|
||||
; Kollektioenn & Sequenzen
|
||||
; Kollektionen & Sequenzen
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; Listen sind Linked-Lists Datenstrukturen, während Vektoren arraybasierend sind.
|
||||
@ -76,10 +76,10 @@ Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig au
|
||||
|
||||
; Eine Liste würde nur als (1 2 3) geschrieben, aber wir müssen es zitieren
|
||||
; damit der Leser aufhört zu denken, es sei eine Funktion.
|
||||
; Außerdem ist (list 1 2 3) das Selbe, wie '(1 2 3)
|
||||
; Außerdem ist (list 1 2 3) dasselbe, wie '(1 2 3)
|
||||
|
||||
; "Kollektioen" sind nur Gruppen von Daten
|
||||
; Listen und Vektoren sind Kolllektionen:
|
||||
; "Kollektionen" sind nur Gruppen von Daten
|
||||
; Listen und Vektoren sind Kollektionen:
|
||||
(coll? '(1 2 3)) ; => true
|
||||
(coll? [1 2 3]) ; => true
|
||||
|
||||
@ -115,7 +115,7 @@ Diese Verknüpfung erlaubt es parallele Verarbeitung sehr einfach und häufig au
|
||||
; = (+ (+ (+ 1 2) 3) 4)
|
||||
; => 10
|
||||
|
||||
; Reduce kann auch einen Initalwert als Argument verwenden
|
||||
; Reduce kann auch einen Initialwert als Argument verwenden
|
||||
(reduce conj [] '(3 2 1))
|
||||
; = (conj (conj (conj [] 3) 2) 1)
|
||||
; => [3 2 1]
|
||||
@ -178,12 +178,12 @@ x ; => 1
|
||||
(class {:a 1 :b 2 :c 3}) ; => clojure.lang.PersistentArrayMap
|
||||
(class (hash-map :a 1 :b 2 :c 3)) ; => clojure.lang.PersistentHashMap
|
||||
|
||||
; Arraymaps werden durch die meisten Operatioen automatisch zu Hashmaps,
|
||||
; Arraymaps werden durch die meisten Operationen automatisch zu Hashmaps,
|
||||
; sobald sie groß genug werden. Das heißt du musst dich nicht darum sorgen.
|
||||
|
||||
; Maps können einen beliebigen Hash-Typ als Schlüssel verwenden, in der Regel
|
||||
; sind jedoch Keywords am besten. Keywords sind wie Strings, jedoch besitzen sie
|
||||
; Performancevorteile
|
||||
; Performance-Vorteile
|
||||
(class :a) ; => clojure.lang.Keyword
|
||||
|
||||
(def stringmap {"a" 1, "b" 2, "c" 3})
|
||||
@ -291,7 +291,7 @@ keymap ; => {:a 1, :b 2, :c 3}
|
||||
; Result: [1 3 5 7 9]
|
||||
|
||||
; Wenn du in einer Situation bist, in der du mehr Freiheit willst,
|
||||
; wohin du das Ergebnis vorheriger Datentransformationen in einem Ausruck
|
||||
; wohin du das Ergebnis vorheriger Datentransformationen in einem Ausdruck
|
||||
; platzieren möchtest, kannst du das as-> Macro verwenden. Mit diesem Macro
|
||||
; kannst du einen speziellen Namen auf die Ausgabe einer Transformationen geben.
|
||||
; Du kannst es als Platzhalter in verketteten Ausdrücken verwenden:
|
||||
@ -323,7 +323,7 @@ keymap ; => {:a 1, :b 2, :c 3}
|
||||
; Hier verwenden wir das Modul clojure.string und die Funktion blank?
|
||||
(clojure.string/blank? "") ; => true
|
||||
|
||||
; Du kannst auch einem Modul einem kürzerern Namen beim Import geben
|
||||
; Du kannst auch einem Modul einen kürzeren Namen beim Import geben
|
||||
(require '[clojure.string :as str])
|
||||
(str/replace "Das ist ein Test." #"[a-o]" str/upper-case) ; => "DAs IsT EIN TEsT."
|
||||
; (#"" bezeichnet einen regulären literalen Ausdruck)
|
||||
@ -374,7 +374,7 @@ keymap ; => {:a 1, :b 2, :c 3}
|
||||
; um mit persistenten Zuständen umzugehen. Es gibt ein Paar Konstrukte in
|
||||
; Clojure die es verwenden.
|
||||
|
||||
; Ein Atom ist das Einfachste. Gebe es einen Initalwert
|
||||
; Ein Atom ist das Einfachste. Gebe es einen Initialwert
|
||||
(def my-atom (atom {}))
|
||||
|
||||
; Update ein Atom mit swap!.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: "clojure macros"
|
||||
language: Clojure macros
|
||||
filename: learnclojuremacros-de.clj
|
||||
contributors:
|
||||
- ["Adam Bard", "http://adambard.com/"]
|
||||
@ -156,6 +156,6 @@ Wenn du mit Clojure vertraut sein möchtest, stelle sicher, dass du alles in [Cl
|
||||
|
||||
[Macros schreiben](http://www.braveclojure.com/writing-macros/)
|
||||
|
||||
[Offiziele Docs](http://clojure.org/macros)
|
||||
[Offizielle Docs](http://clojure.org/macros)
|
||||
|
||||
[Wann verwendet man Macros?](https://lispcast.com/when-to-use-a-macro/)
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: coffeescript
|
||||
language: CoffeeScript
|
||||
contributors:
|
||||
- ["Tenor Biel", "http://github.com/L8D"]
|
||||
- ["Xavier Yao", "http://github.com/xavieryao"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: crystal
|
||||
language: Crystal
|
||||
contributors:
|
||||
- ["Vitalii Elenhaupt", "http://veelenga.com"]
|
||||
- ["Arnaud Fernandés", "https://github.com/TechMagister/"]
|
||||
@ -445,7 +445,7 @@ class Human
|
||||
end
|
||||
|
||||
|
||||
# Eine Klasse instanzieren
|
||||
# Eine Klasse instanziieren
|
||||
jim = Human.new("Jim Halpert")
|
||||
|
||||
dwight = Human.new("Dwight K. Schrute")
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: css
|
||||
language: CSS
|
||||
contributors:
|
||||
- ["Mohammad Valipour", "https://github.com/mvalipour"]
|
||||
translators:
|
||||
@ -139,7 +139,7 @@ selector {
|
||||
|
||||
/* Schriften */
|
||||
font-family: Arial;
|
||||
font-family: "Courier New"; /* wenn der Name ein Leerzeichen beinhält, kommt er in
|
||||
font-family: "Courier New"; /* wenn der Name ein Leerzeichen enthält, kommt er in
|
||||
Anführungszeichen */
|
||||
font-family: "Courier New", Trebuchet, Arial; /* wird die erste Schriftart
|
||||
nicht gefunden, wird die zweite benutzt, usw. */
|
||||
|
@ -14,7 +14,7 @@ module hello;
|
||||
|
||||
import std.stdio;
|
||||
|
||||
// argumente sind optional
|
||||
// Argumente sind optional
|
||||
void main(string[] args) {
|
||||
writeln("Hello, World!");
|
||||
}
|
||||
@ -135,7 +135,7 @@ ist eine Funktion, die wie ein Wert agiert. Das gibt uns viel klarere Syntax
|
||||
im Stil von `structure.x = 7` was gleichgültig wäre zu `structure.setX(7)`
|
||||
|
||||
```d
|
||||
// Diese Klasse ist parameterisiert mit T, U
|
||||
// Diese Klasse ist parametrisiert mit T, U
|
||||
|
||||
class MyClass(T, U) {
|
||||
T _data;
|
||||
@ -186,7 +186,7 @@ void main() {
|
||||
}
|
||||
```
|
||||
|
||||
Mit properties können wir sehr viel logik hinter unseren gettern
|
||||
Mit properties können wir sehr viel Logik hinter unseren gettern
|
||||
und settern hinter einer schönen Syntax verstecken
|
||||
|
||||
Andere Objektorientierte features sind beispielsweise
|
||||
@ -224,12 +224,12 @@ Ist dir aufgefallen, wie wir eine Haskell-Style Pipeline gebaut haben
|
||||
um num zu berechnen?
|
||||
Das war möglich durch die Uniform Function Call Syntax.
|
||||
Mit UFCS können wir auswählen, ob wir eine Funktion als Methode oder
|
||||
als freie Funktion aufrufen. Walters artikel dazu findet ihr
|
||||
als freie Funktion aufrufen. Walters Artikel dazu findet ihr
|
||||
[hier.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)
|
||||
Kurzgesagt kann man Funktionen, deren erster Parameter vom typ A ist, als
|
||||
Methode auf A anwenden.
|
||||
|
||||
Parrallel Computing ist eine Tolle sache, findest du nicht auch?
|
||||
Parallel Computing ist eine tolle Sache, findest du nicht auch?
|
||||
|
||||
```d
|
||||
import std.stdio;
|
||||
@ -238,7 +238,7 @@ import std.math : sqrt;
|
||||
|
||||
void main() {
|
||||
// Wir wollen die Wurzel von jeder Zahl in unserem Array berechnen
|
||||
// und dabei alle Kerne verwenden, die wir zur verfügung haben
|
||||
// und dabei alle Kerne verwenden, die wir zur Verfügung haben
|
||||
auto arr = new double[1_000_000];
|
||||
|
||||
// Wir verwenden den Index und das Element als Referenz
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: edn
|
||||
language: EDN
|
||||
filename: learnedn-de.edn
|
||||
contributors:
|
||||
- ["Jason Yeo", "https://github.com/jsyeo"]
|
||||
@ -82,7 +82,7 @@ false
|
||||
;;; markierte Elemente ;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; EDN kann erweitert werden, indem Elemente mit # Symbolen makiert werden.
|
||||
; EDN kann erweitert werden, indem Elemente mit # Symbolen markiert werden.
|
||||
|
||||
#MyYelpClone/MenuItem {:name "eggs-benedict" :rating 10}
|
||||
|
||||
@ -108,4 +108,4 @@ false
|
||||
|
||||
- [EDN spec](https://github.com/edn-format/edn)
|
||||
- [Implementationen](https://github.com/edn-format/edn/wiki/Implementations)
|
||||
- [makierte Elemente](http://www.compoundtheory.com/clojure-edn-walkthrough/)
|
||||
- [markierte Elemente](http://www.compoundtheory.com/clojure-edn-walkthrough/)
|
||||
|
@ -33,7 +33,7 @@ Hauptmerkmal von Elm sind die ausführlichen und gut erklärten Fehlermeldungen.
|
||||
-- Exponenten
|
||||
5 ^ 2 -- 25
|
||||
|
||||
-- Boolsche Werte
|
||||
-- Boolesche Werte
|
||||
not True -- False
|
||||
not False -- True
|
||||
1 == 1 -- True
|
||||
@ -189,7 +189,7 @@ listLength aList =
|
||||
-- Klammern bietet die Möglichkeit der Bevorrangung.
|
||||
cos (degrees 30) ^ 2 + sin (degrees 30) ^ 2 -- 1
|
||||
-- Als erstes wird die Funktion "degrees" mit dem Wert 30 aufgerufen.
|
||||
-- Danach wird das Ergenis davon den Funktionen "cos", bzw. "sin" übergeben.
|
||||
-- Danach wird das Ergebnis davon den Funktionen "cos", bzw. "sin" übergeben.
|
||||
-- Dann wird das Ergebnis davon mit 2 quadriert und als letztes werden diese
|
||||
-- beiden Werte dann addiert.
|
||||
|
||||
@ -238,7 +238,7 @@ append [1,1,2] [3,5,8] -- [1,1,2,3,5,8]
|
||||
|
||||
{-- Eigene Datentypen erstellen --}
|
||||
|
||||
-- Ein "Record" ist ähnlich wie ein Tupel, nur das jedes Feld einen Namne hat.
|
||||
-- Ein "Record" ist ähnlich wie ein Tupel, nur das jedes Feld einen Namen hat.
|
||||
-- Dabei spielt die Reihenfolge keine Rolle.
|
||||
{ x = 3, y = 7 }
|
||||
|
||||
@ -253,7 +253,7 @@ append [1,1,2] [3,5,8] -- [1,1,2,3,5,8]
|
||||
{ person |
|
||||
name = "George" }
|
||||
|
||||
-- Mehrere Felder aufeinmal ändern unter Verwendung des alten Wertes.
|
||||
-- Mehrere Felder auf einmal ändern unter Verwendung des alten Wertes.
|
||||
{ particle |
|
||||
position = particle.position + particle.velocity,
|
||||
velocity = particle.velocity + particle.acceleration }
|
||||
@ -274,7 +274,7 @@ otherOrigin : Point3D
|
||||
otherOrigin =
|
||||
Point3D 0 0 0
|
||||
|
||||
-- Aber es ist immernoch der selbe Typ, da es nur ein Alias ist!
|
||||
-- Aber es ist immer noch derselbe Typ, da es nur ein Alias ist!
|
||||
origin == otherOrigin -- True
|
||||
|
||||
-- Neben den Records gibt es auch noch so genannte Summentypen.
|
||||
@ -309,7 +309,7 @@ leftmostElement tree =
|
||||
-- Die Kernbibliotheken und andere Bibliotheken sind in Module aufgeteilt.
|
||||
-- Für große Projekte können auch eigene Module erstellt werden.
|
||||
|
||||
-- Eine Modul beginnt mit ganz oben. Ohne diese Angabe befindet man sich
|
||||
-- Eine Modul beginnt ganz oben. Ohne diese Angabe befindet man sich
|
||||
-- automatisch im Modul "Main".
|
||||
module Name where
|
||||
|
||||
@ -337,7 +337,7 @@ $ elm make MyFile.elm
|
||||
-- "elm-package.json"-Datei anlegen, die alle Informationen des Projektes
|
||||
-- speichert.
|
||||
|
||||
-- Der Reactor ist ein Server, welche alle Dateinen kompiliert und ausführt.
|
||||
-- Der Reactor ist ein Server, welcher alle Dateien kompiliert und ausführt.
|
||||
$ elm reactor
|
||||
|
||||
-- Starte das REPL (read-eval-print-loop).
|
||||
@ -360,7 +360,7 @@ Noch ein paar weitere hilfreiche Ressourcen (in Englisch):
|
||||
|
||||
- Die [Elm Homepage](http://elm-lang.org/). Dort findest du:
|
||||
|
||||
- [Anleitung zur Installierung von Elm](http://elm-lang.org/install)
|
||||
- [Anleitung zur Installation von Elm](http://elm-lang.org/install)
|
||||
- [Dokumentation](http://elm-lang.org/docs), sowie eine [Referenz zur Syntax](http://elm-lang.org/docs/syntax)
|
||||
- Viele hilfreiche [Beispiele](http://elm-lang.org/examples)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: git
|
||||
tool: Git
|
||||
contributors:
|
||||
- ["Jake Prather", "http://github.com/JakeHP"]
|
||||
translators:
|
||||
@ -26,7 +26,7 @@ Eine Versionsverwaltung erfasst die Änderungen einer Datei oder eines Verzeichn
|
||||
* Verteilte Versionsverwaltung konzentriert sich auf das Teilen der Änderungen. Jede Änderung hat eine eindeutige ID.
|
||||
* Verteilte Systeme haben keine vorbestimmte Struktur. Ein SVN-ähnliches, zentrales System wäre mit Git ebenso umsetzbar.
|
||||
|
||||
[Weiterführende Informationen](http://git-scm.com/book/en/Getting-Started-About-Version-Control)
|
||||
[Weiterführende Informationen](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control)
|
||||
|
||||
### Warum Git?
|
||||
|
||||
@ -50,7 +50,7 @@ Ein Repository besteht in Git aus dem .git-Verzeichnis und dem Arbeitsverzeichni
|
||||
### .git-Verzeichnis (Teil des Repositorys)
|
||||
|
||||
Das .git-Verzeichnis enthält alle Einstellungen, Logs, Branches, den HEAD und mehr.
|
||||
[Ausführliche Übersicht](http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html)
|
||||
[Ausführliche Übersicht](https://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html)
|
||||
|
||||
### Arbeitsverzeichnis (Teil des Repositorys)
|
||||
|
||||
@ -74,12 +74,6 @@ HEAD ist ein Pointer auf den aktuellen Branch. Ein Repository hat nur einen *akt
|
||||
|
||||
Ein *head* ist ein Pointer, der auf einen beliebigen Commit zeigt. Ein Repository kann eine beliebige Zahl von *heads* enthalten.
|
||||
|
||||
### Konzeptionelle Hintergründe
|
||||
|
||||
* [Git For Computer Scientists](http://eagain.net/articles/git-for-computer-scientists/)
|
||||
* [Git For Designers](http://hoth.entp.com/output/git_for_designers.html)
|
||||
|
||||
|
||||
## Befehle
|
||||
|
||||
|
||||
@ -104,7 +98,7 @@ $ git config --global user.email "MyEmail@Zoho.com"
|
||||
$ git config --global user.name "My Name"
|
||||
```
|
||||
|
||||
[Mehr über git config](http://git-scm.com/docs/git-config)
|
||||
[Mehr über git config](https://git-scm.com/docs/git-config)
|
||||
|
||||
### help
|
||||
|
||||
@ -255,7 +249,7 @@ $ git grep -e 'arrayListName' --and \( -e add -e remove \)
|
||||
```
|
||||
|
||||
Google ist dein Freund; für mehr Beispiele:
|
||||
[Git Grep Ninja](http://travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja)
|
||||
[Git Grep Ninja](https://travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja)
|
||||
|
||||
### log
|
||||
|
||||
@ -338,7 +332,7 @@ Nimm alle Änderungen, die in einem Branch durch Commits vorgenommen wurden, und
|
||||
$ git rebase master experimentBranch
|
||||
```
|
||||
|
||||
[Weiterführende Informationen](http://git-scm.com/book/en/Git-Branching-Rebasing)
|
||||
[Weiterführende Informationen](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
|
||||
|
||||
### reset (mit Vorsicht einsetzen)
|
||||
|
||||
@ -375,14 +369,12 @@ $ git rm /pather/to/the/file/HelloWorld.c
|
||||
|
||||
## Weiterführende Informationen
|
||||
|
||||
* [tryGit - A fun interactive way to learn Git.](http://try.github.io/levels/1/challenges/1)
|
||||
* [git-scm - Video Tutorials](https://git-scm.com/videos)
|
||||
|
||||
* [git-scm - Video Tutorials](http://git-scm.com/videos)
|
||||
|
||||
* [git-scm - Documentation](http://git-scm.com/docs)
|
||||
* [git-scm - Documentation](https://git-scm.com/docs)
|
||||
|
||||
* [Atlassian Git - Tutorials & Workflows](https://www.atlassian.com/git/)
|
||||
|
||||
* [SalesForce Cheat Sheet](https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf)
|
||||
* [gitflow - Ein Modell um mit Branches zu arbeiten](https://nvie.com/posts/a-successful-git-branching-model/)
|
||||
|
||||
* [gitflow - Ein Modell um mit Branches zu arbeiten](http://nvie.com/posts/a-successful-git-branching-model/)
|
||||
* [Git For Computer Scientists](https://eagain.net/articles/git-for-computer-scientists/)
|
||||
|
@ -85,7 +85,7 @@ Zeilenumbrüche beinhalten.` // Selber Zeichenketten-Typ
|
||||
f := 3.14159 // float64, eine IEEE-754 64-bit Dezimalzahl
|
||||
c := 3 + 4i // complex128, besteht intern aus zwei float64-er
|
||||
|
||||
// "var"-Syntax mit Initalwert
|
||||
// "var"-Syntax mit Initialwert
|
||||
var u uint = 7 // Vorzeichenlos, aber die Größe ist implementationsabhängig
|
||||
var pi float32 = 22. / 7
|
||||
|
||||
@ -124,13 +124,13 @@ Zeilenumbrüche beinhalten.` // Selber Zeichenketten-Typ
|
||||
// keine Zeiger-Rechnungen. Fehler können sich durch "nil" einschleichen, jedoch
|
||||
// nicht durch erhöhen eines Zeigers.
|
||||
func learnMemory() (p, q *int) {
|
||||
// Die bennanten Rückgabewerte p & q sind vom Typ *int
|
||||
// Die benannten Rückgabewerte p & q sind vom Typ *int
|
||||
p = new(int) // Eingebaute Funktion "new" weist neuen Speicherplatz zu
|
||||
// Der zugewiesene Speicher ist mit 0 initialisiert, p ist nicht länger nil
|
||||
s := make([]int, 20) // So weist man 20 ints nebeneinander (im Speicher) zu
|
||||
s[3] = 7 // Einer von ihnen wird ein Wert zugewiesen
|
||||
r := -2 // Deklaration einer weiteren lokalen Variable
|
||||
return &s[3], &r // & gibt die Addresse einer Variable
|
||||
return &s[3], &r // & gibt die Adresse einer Variable
|
||||
}
|
||||
|
||||
func expensiveComputation() int {
|
||||
@ -292,7 +292,7 @@ func learnConcurrency() {
|
||||
|
||||
// Eine einzige Funktion aus dem http-Paket kann einen Webserver starten.
|
||||
func learnWebProgramming() {
|
||||
// Der erste Parameter von "ListenAndServe" ist eine TCP Addresse, an die
|
||||
// Der erste Parameter von "ListenAndServe" ist eine TCP Adresse, an die
|
||||
// sich angeschlossen werden soll.
|
||||
// Der zweite Parameter ist ein Interface, speziell: ein http.Handler
|
||||
err := http.ListenAndServe(":8080", pair{})
|
||||
|
@ -317,5 +317,5 @@ besuchen.
|
||||
Die offizielle Webseite [hhvm.com](http://hhvm.com/) bietet Infos zum Download
|
||||
und zur Installation der HHVM.
|
||||
|
||||
Hack's [nicht-untersützte PHP Syntax-Elemente](http://docs.hhvm.com/manual/en/hack.unsupported.php)
|
||||
Hack's [nicht-unterstützte PHP Syntax-Elemente](http://docs.hhvm.com/manual/en/hack.unsupported.php)
|
||||
werden im offiziellen Handbuch beschrieben.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: haml
|
||||
language: Haml
|
||||
filename: learnhaml-de.haml
|
||||
contributors:
|
||||
- ["Simon Neveu", "https://github.com/sneveu"]
|
||||
@ -93,7 +93,7 @@ $ haml input_file.haml output_file.html
|
||||
/ andere Attribute können über den Hash angegeben werden:
|
||||
%a{:href => '#', :class => 'bar', :title => 'Bar'}
|
||||
|
||||
/ Booleesche Attribute können mit 'true' gesetzt werden:
|
||||
/ Boolesche Attribute können mit 'true' gesetzt werden:
|
||||
%input{:selected => true}
|
||||
|
||||
/ data-Attribute können in einem eigenen Hash im :data key angegeben werden:
|
||||
|
@ -50,7 +50,7 @@ not False -- True
|
||||
1 /= 1 -- False
|
||||
1 < 10 -- True
|
||||
|
||||
-- `not` ist eine Funktion die ein Argument entgegenimmt.
|
||||
-- `not` ist eine Funktion die ein Argument entgegennimmt.
|
||||
-- Haskell benötigt keine Klammern um Argumente.
|
||||
-- Sie werden einfach aufgelistet: func arg1 arg2 arg3...
|
||||
-- Wie man Funktionen definiert kommt weiter unten.
|
||||
@ -66,6 +66,8 @@ not False -- True
|
||||
|
||||
-- Ein String ist eine Liste von Zeichen.
|
||||
['H', 'a', 'l', 'l', 'o', '!'] -- "Hallo!"
|
||||
|
||||
-- Der "!!"-Operator extrahiert das Element an einem bestimmten Index
|
||||
"Das ist eine String" !! 0 -- 'D'
|
||||
|
||||
|
||||
@ -87,7 +89,7 @@ not False -- True
|
||||
[5..1] -- [], da Haskell standardmässig inkrementiert.
|
||||
[5,4..1] -- [5,4,3,2,1]
|
||||
|
||||
-- Der "!!"-Operator extrahiert das Element an einem bestimmten Index:
|
||||
-- Ein Element per Index extrahieren:
|
||||
[1..10] !! 3 -- 4
|
||||
|
||||
-- Haskell unterstützt unendliche Listen!
|
||||
@ -282,7 +284,7 @@ for [0..5] $ \i -> show i
|
||||
-- wir hätten sie auch so benutzen können:
|
||||
for [0..5] show
|
||||
|
||||
-- foldl oder foldr reduziren Listen auf einen Wert.
|
||||
-- foldl oder foldr reduzieren Listen auf einen Wert.
|
||||
-- foldl <Funktion> <initialer Wert> <Liste>
|
||||
foldl (\x y -> 2*x + y) 4 [1,2,3] -- 43
|
||||
|
||||
@ -345,7 +347,7 @@ main' = interact countLines
|
||||
|
||||
-- Man kann den Typ `IO ()` als Repräsentation einer Sequenz von
|
||||
-- Aktionen sehen, die der Computer abarbeiten muss.
|
||||
-- Wie bei einem Programm das in einer Imperativen Sprache geschreiben wurde.
|
||||
-- Wie bei einem Programm das in einer Imperativen Sprache geschrieben wurde.
|
||||
-- Mit der `do` Notation können Aktionen verbunden werden.
|
||||
|
||||
sayHello :: IO ()
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
language: HQ9+
|
||||
filename: hq9+-de.html
|
||||
filename: hq9+-de.txt
|
||||
contributors:
|
||||
- ["Alexey Nazaroff", "https://github.com/rogaven"]
|
||||
translators:
|
||||
|
@ -1,16 +1,16 @@
|
||||
---
|
||||
language: html
|
||||
language: HTML
|
||||
contributors:
|
||||
- ["Christophe THOMAS", "https://github.com/WinChris"]
|
||||
translators:
|
||||
- ["Dennis Keller", "https://github.com/denniskeller"]
|
||||
filename: learnhtml-de.html
|
||||
filename: learnhtml-de.txt
|
||||
lang: de-de
|
||||
---
|
||||
|
||||
HTML steht für HyperText Markup Language (Hypertext-Auszeichnungssprache).
|
||||
Sie ist eine Sprache, um Seiten für das World Wide Web zu schreiben.
|
||||
Es ist eine Auszeichnugssprache, die es uns ermöglicht Webseiten mithilfe des Codes zu schreiben, der kennzeichnet wie Text und Daten angezeigt werden sollen. Eigentlich sind HTML Dateien nur einfache Textdateien.
|
||||
Es ist eine Auszeichnungssprache, die es uns ermöglicht Webseiten mithilfe des Codes zu schreiben, der kennzeichnet wie Text und Daten angezeigt werden sollen. Eigentlich sind HTML Dateien nur einfache Textdateien.
|
||||
Was sind das für Auszeichnungen? Es ist eine Methode, um die Daten der Website zu organisieren mithilfe von Start- und Endtags.
|
||||
Diese Auszeichnung dient dazu dem Text Bedeutung zu geben, welchen sie umschließt.
|
||||
Wie viele andere Computersprachen auch, besitzt HTML viele Versionen. Wir werden hier über HTML5 reden.
|
||||
@ -65,7 +65,7 @@ Dieser Artikel ist bedacht darauf, nur HTML Syntax und nützliche Tipps zu geben
|
||||
</head>
|
||||
|
||||
<!-- Nach dem <head> Bereich findet sich der <body> Tag -->
|
||||
<!-- Bis zu diesem Punkt wird nichts im Browerfenster angezeigt. -->
|
||||
<!-- Bis zu diesem Punkt wird nichts im Browserfenster angezeigt. -->
|
||||
<!-- Wir müssen den Body mit dem Inhalt füllen, der angezeigt werden soll. -->
|
||||
|
||||
<body>
|
||||
@ -95,7 +95,7 @@ Dieser Artikel ist bedacht darauf, nur HTML Syntax und nützliche Tipps zu geben
|
||||
<table> <!-- Wir öffnen ein <table> Element. -->
|
||||
<tr> <!-- <tr> erlaubt es uns, Reihen zu erstellen. -->
|
||||
<th>Erster Tabellenkopf</th> <!-- <th> erlaubt es uns, der Tabelle einen Titel zu geben. -->
|
||||
<th>Zweiter Tabllenkopf</th>
|
||||
<th>Zweiter Tabellenkopf</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Erste Zeile, erste Spalte</td> <!-- <td> erlaubt es, eine Tabellenzelle zu erstellen. -->
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: java
|
||||
language: Java
|
||||
filename: LearnJavaDe-de.java
|
||||
contributors:
|
||||
- ["Jake Prather", "http://github.com/JakeHP"]
|
||||
@ -125,9 +125,9 @@ public class LearnJavaDe {
|
||||
|
||||
// Weitere nennenswerte Typen
|
||||
// ArrayLists - Ähnlich Arrays, allerdings werden mehr Funktionen geboten,
|
||||
// ebenso ist die Arraygröße verwänderbar
|
||||
// ebenso ist die Arraygröße veränderbar
|
||||
// LinkedLists - Implementierung einer doppelt verlinkten Liste.
|
||||
// Alle Operationen funktioneren so, wie es von einer doppelt verlinkten Liste erwartet wird.
|
||||
// Alle Operationen funktionieren so, wie es von einer doppelt verlinkten Liste erwartet wird.
|
||||
// Weitere Informationen: https://de.wikipedia.org/wiki/Liste_(Datenstruktur)#Doppelt_.28mehrfach.29_verkettete_Liste
|
||||
// Maps - Eine Sammlung von Objekten, welche eine Verknüpfung von Schlüsseln zu Werten (key => value) vornimmt.
|
||||
// Eine Map kann keine Duplikate enthalten; Jeder Schlüssel kann genau einen Wert beinhalten.
|
||||
@ -173,7 +173,7 @@ public class LearnJavaDe {
|
||||
// Inkrementierungen
|
||||
int i = 0;
|
||||
System.out.println("\n->Inc/Dec-rementierung");
|
||||
// Die ++ und -- operatoren inkrementieren und dekrementieren jeweils um 1.
|
||||
// Die ++ und -- Operatoren inkrementieren und dekrementieren jeweils um 1.
|
||||
// Werden sie vor die Variable gesetzt, ink-/dekrementieren sie und geben anschließend ihren Wert zurück.
|
||||
// Hinter der Variable geben sie ihren Wert zurück und ändern ihn anschließend.
|
||||
System.out.println(i++); // i = 1, schreibt 0 (post-increment)
|
||||
@ -284,7 +284,7 @@ public class LearnJavaDe {
|
||||
// String
|
||||
|
||||
// Tpe-Casting
|
||||
// Java Objekte können benfalls konvertiert werden, hierbei gibt es vielfältige Konzepte.
|
||||
// Java Objekte können ebenfalls konvertiert werden, hierbei gibt es vielfältige Konzepte.
|
||||
// Weitere Informationen finden sich hier (englisch):
|
||||
// http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
|
||||
|
||||
@ -311,7 +311,7 @@ public class LearnJavaDe {
|
||||
} // Ende der LearnJavaDe Klasse
|
||||
|
||||
|
||||
// In einer .java-Datei können zusätzliche nicht öffentliche (non-public) äüßere Klassen vorhanden sein.
|
||||
// In einer .java-Datei können zusätzliche nicht öffentliche (non-public) äußere Klassen vorhanden sein.
|
||||
|
||||
|
||||
// Syntax der Klassendeklaration:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: javascript
|
||||
language: JavaScript
|
||||
contributors:
|
||||
- ["Leigh Brenecki", "https://leigh.net.au"]
|
||||
translators:
|
||||
@ -200,7 +200,7 @@ while (true) {
|
||||
// Eine unendliche Schleife!
|
||||
}
|
||||
|
||||
// Do-while-Scheifen arbeiten wie while-Schleifen, abgesehen davon, dass sie
|
||||
// Do-while-Schleifen arbeiten wie while-Schleifen, abgesehen davon, dass sie
|
||||
// immer mindestens einmal ausgeführt werden.
|
||||
var input;
|
||||
do {
|
||||
@ -370,7 +370,7 @@ var anotherFunc = function(s){
|
||||
}
|
||||
anotherFunc.call(myObj, " And Hello Moon!"); // = "Hello World! And Hello Moon!"
|
||||
|
||||
// 'apply' funktioniert beiahe identisch, erwartet die übergebenen Argumente
|
||||
// 'apply' funktioniert beinahe identisch, erwartet die übergebenen Argumente
|
||||
// aber in einem Array
|
||||
|
||||
anotherFunc.apply(myObj, [" And Hello Sun!"]); // = "Hello World! And Hello Sun!"
|
||||
@ -515,7 +515,7 @@ MDN's [A re-introduction to JavaScript](https://developer.mozilla.org/en-US/docs
|
||||
|
||||
Dieses Tutorial hat nur die Sprache JavaScript vorgestellt; um mehr über den Einsatz in Websites zu lernen, ist es ein guter Start etwas über das [Document Object Model](https://developer.mozilla.org/en-US/docs/Using_the_W3C_DOM_Level_1_Core) zu lernen.
|
||||
|
||||
[JavaScript Garden](http://bonsaiden.github.io/JavaScript-Garden/) ist eine tiefgehende Einführung in die kontra-intuitiven Parts der Sprache.
|
||||
[JavaScript Garden](https://shamansir.github.io/JavaScript-Garden/) ist eine tiefgehende Einführung in die kontra-intuitiven Parts der Sprache.
|
||||
|
||||
[JavaScript: The Definitive Guide](http://www.amazon.com/gp/product/0596805527/) ist ein Klassiker unter den Referenzen.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: json
|
||||
language: JSON
|
||||
filename: learnjson-de.json
|
||||
contributors:
|
||||
- ["Anna Harren", "https://github.com/iirelu"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: latex
|
||||
language: LaTeX
|
||||
contributors:
|
||||
- ["Chaitanya Krishna Ande", "http://icymist.github.io"]
|
||||
- ["Colton Kohnke", "http://github.com/voltnor"]
|
||||
@ -57,7 +57,7 @@ filename: latex-de.tex
|
||||
% LaTeX für uns eine Titelseite generieren
|
||||
\maketitle
|
||||
|
||||
% Die meisten Paper haben ein Abstract. LaTeX bietet dafür einen vorgefertigen Befehl an.
|
||||
% Die meisten Paper haben ein Abstract. LaTeX bietet dafür einen vorgefertigten Befehl an.
|
||||
% Das Abstract sollte in der logischen Reihenfolge, also nach dem Titel, aber vor dem
|
||||
% Inhalt erscheinen.
|
||||
% Dieser Befehl ist in den Dokumentenklassen article und report verfügbar.
|
||||
|
@ -29,11 +29,11 @@ t = "Doppelte Anführungszeichen sind auch OK"
|
||||
u = [[ Doppelte eckige Klammern
|
||||
beginnen und beenden
|
||||
mehrzeilige Zeichenketten.]]
|
||||
t = nil -- Undefineren von t; Lua hat einen Garbage Collection.
|
||||
t = nil -- Undefinieren von t; Lua hat einen Garbage Collection.
|
||||
|
||||
-- Blöcke werden durch Schlüsselwörter wie do/end markiert:
|
||||
while num < 50 do
|
||||
num = num + 1 -- Es gibt Keine Operatoren wie ++ oder +=
|
||||
num = num + 1 -- Es gibt keine Operatoren wie ++ oder +=
|
||||
end
|
||||
|
||||
-- If Bedingungen:
|
||||
@ -72,7 +72,7 @@ for i = 1, 100 do -- Ein Bereich inkludiert beide Enden.
|
||||
karlSum = karlSum + i
|
||||
end
|
||||
|
||||
-- Verwende "100, 1, -1" als Breich für Countdowns:
|
||||
-- Verwende "100, 1, -1" als Bereich für Countdowns:
|
||||
fredSum = 0
|
||||
for j = 100, 1, -1 do fredSum = fredSum + j end
|
||||
|
||||
@ -161,7 +161,7 @@ print(t.key1) -- Ausgabe 'value1'.
|
||||
t.newKey = {} -- Neues Schlüssel/Wert-Paar hinzufügen.
|
||||
t.key2 = nil -- key2 aus der Tabelle entfernen.
|
||||
|
||||
-- Literale notation für jeden (nicht-nil) Wert als Schlüssel:
|
||||
-- Literale Notation für jeden (nicht-nil) Wert als Schlüssel:
|
||||
u = {['@!#'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
|
||||
print(u[6.28]) -- Ausgabe "tau"
|
||||
|
||||
@ -171,7 +171,7 @@ a = u['@!#'] -- Nun ist a = 'qbert'.
|
||||
b = u[{}] -- Wir würden 1729 erwarten, aber es ist nil:
|
||||
-- b = nil weil der Lookup fehlschlägt. Er schlägt Fehl, weil der Schlüssel
|
||||
-- den wir verwendet haben nicht das gleiche Objekt ist das wir verwendet
|
||||
-- haben um den original Wert zu speichern. Zahlen und Zeichnkette sind daher
|
||||
-- haben um den original Wert zu speichern. Zahlen und Zeichenkette sind daher
|
||||
-- die praktischeren Schlüssel.
|
||||
|
||||
-- Eine Funktion mit nur einem Tabellen-Parameter benötigt keine Klammern.
|
||||
@ -230,7 +230,7 @@ s = f1 + f2 -- Rufe __add(f1, f2) vom der Metatabelle von f1 auf.
|
||||
|
||||
-- Die nächste Zeile schlägt fehl weil s keine Metatabelle hat:
|
||||
-- t = s + s
|
||||
-- Mihilfe von Klassen ähnlichen Mustern kann das gelöst werden.
|
||||
-- Mithilfe von Klassen ähnlichen Mustern kann das gelöst werden.
|
||||
-- Siehe weiter unten.
|
||||
|
||||
-- Ein __index einer Metatabelle überlädt Punkt-Lookups:
|
||||
@ -269,10 +269,10 @@ eatenBy = myFavs.animal -- Funktioniert dank Metatabelle!
|
||||
-- 3.2 Klassen-Artige Tabellen und Vererbung.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- Klassen sind in Lua nicht eingebaut. Es gibt verschieden Wege sie mithilfe
|
||||
-- Klassen sind in Lua nicht eingebaut. Es gibt verschiedene Wege sie mithilfe
|
||||
-- von Tabellen und Metatabellen zu erzeugen.
|
||||
|
||||
-- Die Erklärund des Beispiels erfolgt unterhalb.
|
||||
-- Die Erklärung des Beispiels erfolgt unterhalb.
|
||||
|
||||
Dog = {} -- 1.
|
||||
|
||||
@ -294,7 +294,7 @@ mrDog:makeSound() -- 'I say woof' -- 8.
|
||||
-- "function tablename.fn(self, ...)", Der : fügt nur ein Argument namens
|
||||
-- self hinzu. Siehe 7 & 8 um zu sehen wie self seinen Wert bekommt.
|
||||
-- 3. newObj wird eine Instanz von Dog.
|
||||
-- 4. "self" ist die zu Instanzierende Klasse. Meistern ist self = Dog, aber
|
||||
-- 4. "self" ist die zu instanziierende Klasse. Meistern ist self = Dog, aber
|
||||
-- dies kann durch Vererbung geändert werden. newObj bekommt die Funktionen
|
||||
-- von self wenn wir die Metatabelle von newObj und __index von self auf
|
||||
-- self setzen.
|
||||
@ -419,7 +419,7 @@ Wichtige Themen die hier nicht angesprochen wurden; die Standard-Bibliotheken:
|
||||
* [`io` library](http://lua-users.org/wiki/IoLibraryTutorial)
|
||||
* [`os` library](http://lua-users.org/wiki/OsLibraryTutorial)
|
||||
|
||||
Übrigends, die gesamte Datei ist gültiges Lua. Speichere sie als learn.lua und
|
||||
Übrigens, die gesamte Datei ist gültiges Lua. Speichere sie als learn.lua und
|
||||
starte sie als "`lua learn.lua`" !
|
||||
|
||||
Die Erstfassung ist von tylerneylon.com, und ist auch hier verfügbar: [GitHub gist](https://gist.github.com/tylerneylon/5853042). Viel Spaß mit Lua!
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: make
|
||||
tool: Make
|
||||
contributors:
|
||||
- ["Robert Steed", "https://github.com/robochat"]
|
||||
- ["Stephan Fuhrmann", "https://github.com/sfuhrm"]
|
||||
@ -132,7 +132,7 @@ small/%.png: %.svg
|
||||
%.png: %.ps
|
||||
@echo this rule is not chosen if *.svg and *.ps are both present
|
||||
|
||||
# Make hat bereits ein paar eingebaute Muster-Vergleichs-Regelen. Zum Beispiel
|
||||
# Make hat bereits ein paar eingebaute Muster-Vergleichs-Regeln. Zum Beispiel
|
||||
# weiß Make wie man aus *.c Dateien *.o Dateien erzeugt.
|
||||
|
||||
# Ältere Versionen von Make verwenden möglicherweise Suffix-Regeln anstatt
|
||||
@ -236,7 +236,7 @@ ls: * src/*
|
||||
include foo.mk
|
||||
|
||||
sport = tennis
|
||||
# Konditionale kompiliereung
|
||||
# Konditionale Kompilierung
|
||||
report:
|
||||
ifeq ($(sport),tennis)
|
||||
@echo 'game, set, match'
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: markdown
|
||||
language: Markdown
|
||||
contributors:
|
||||
- ["Dan Turkel", "http://danturkel.com/"]
|
||||
translators :
|
||||
@ -115,7 +115,7 @@ oder
|
||||
3. Punkt drei
|
||||
|
||||
<!-- Auch wenn es keine gute Idee sein mag: du müsstest die einzelnen Punkte
|
||||
nicht mal korrekt numerieren -->
|
||||
nicht mal korrekt nummerieren -->
|
||||
|
||||
1. Punkt eins
|
||||
1. Punkt zwei
|
||||
@ -148,7 +148,7 @@ indem du eine Zeile mit vier Leerzeichen oder einem Tabulator einrückst -->
|
||||
|
||||
Hermann hatte nicht die leiseste Ahnung, was dieses `go_to()` bedeuten könnte!
|
||||
|
||||
<!-- In "GitHub Flavored Markdown" gibt es für Code nocheinmal eine
|
||||
<!-- In "GitHub Flavored Markdown" gibt es für Code noch einmal eine
|
||||
besondere Syntax -->
|
||||
|
||||
\`\`\`ruby <!-- in "echt" musst du die Backslashes entfernen: ```ruby ! -->
|
||||
@ -223,7 +223,7 @@ voranstellt! -->
|
||||
<http://testwebseite.de/> ist das selbe wie
|
||||
[http://testwebseite.de/](http://testwebseite.de/)
|
||||
|
||||
<!-- Automatische Links für E-Mail-Addressen -->
|
||||
<!-- Automatische Links für E-Mail-Adressen -->
|
||||
|
||||
<foo@bar.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: nix
|
||||
language: Nix
|
||||
filename: learnnix-de.nix
|
||||
contributors:
|
||||
- ["Chris Martin", "http://chris-martin.org/"]
|
||||
@ -222,7 +222,7 @@ with builtins; [
|
||||
({ a = 1; b = 2; } // { a = 3; c = 4; })
|
||||
#=> { a = 3; b = 2; c = 4; }
|
||||
|
||||
# Das Schlüsselwort rec bezeichenet ein "rekursives Set", in dem sich Attribute
|
||||
# Das Schlüsselwort rec bezeichnet ein "rekursives Set", in dem sich Attribute
|
||||
# aufeinander beziehen können.
|
||||
(let a = 1; in { a = 2; b = a; }.b)
|
||||
#=> 1
|
||||
|
@ -34,7 +34,7 @@ Manche Beispiele sind von <http://learnxinyminutes.com/docs/racket/>.
|
||||
|
||||
;; Funktionsapplikationen werden so geschrieben: (f x y z ...)
|
||||
;; Dabei ist f eine Funktion und x, y, z sind die Operatoren.
|
||||
;; Wenn du eine Literalliste von Daten erstelllen möchtest,
|
||||
;; Wenn du eine Literalliste von Daten erstellen möchtest,
|
||||
;; verwende (quote) um zu verhindern, dass sie ausgewertet zu werden.
|
||||
(quote (+ 1 2)) ; => (+ 1 2)
|
||||
;; Nun einige arithmetische Operationen
|
||||
@ -74,7 +74,7 @@ false ; for Falsch
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; 2. Variablen
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Du kannst Variablen setzen indem du (set) verwedest
|
||||
;; Du kannst Variablen setzen indem du (set) verwendest
|
||||
;; eine Variable kann alle Zeichen besitzen außer: ();#"
|
||||
(set some-var 5) ; => 5
|
||||
some-var ; => 5
|
||||
@ -92,7 +92,7 @@ some-var ; => 5
|
||||
|
||||
;;; Listen
|
||||
|
||||
;; Listen sind Vektrorartige Datenstrukturen. (Zufälliger Zugriff ist O(1).
|
||||
;; Listen sind Vektorartige Datenstrukturen. (Zufälliger Zugriff ist O(1).
|
||||
(cons 1 (cons 2 (cons 3 (list)))) ; => (1 2 3)
|
||||
;; 'list' ist ein komfortabler variadischer Konstruktor für Listen
|
||||
(list 1 2 3) ; => (1 2 3)
|
||||
@ -196,5 +196,5 @@ a ; => (3 2)
|
||||
(infix 1 + 2 (infix 3 * 4)) ; => 15
|
||||
|
||||
;; Makros sind nicht hygenisch, Du kannst bestehende Variablen überschreiben!
|
||||
;; Sie sind Codetransformationenen.
|
||||
;; Sie sind Codetransformationen.
|
||||
```
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: perl
|
||||
language: Perl
|
||||
filename: learnperl-de.pl
|
||||
contributors:
|
||||
- ["Korjavin Ivan", "http://github.com/korjavin"]
|
||||
@ -10,7 +10,7 @@ lang: de-de
|
||||
|
||||
Perl ist eine sehr mächtige, funktionsreiche Programmiersprache mit über 25 Jahren Entwicklungsgeschichte.
|
||||
|
||||
Perl läuft auf über 100 Platformen von portablen Geräten bis hin zu Mainframes. Perl ist geeignet für Rapid-Prototyping und auch groß angelegte Entwicklungs-Projekte.
|
||||
Perl läuft auf über 100 Plattformen von portablen Geräten bis hin zu Mainframes. Perl ist geeignet für Rapid-Prototyping und auch groß angelegte Entwicklungs-Projekte.
|
||||
|
||||
```perl
|
||||
# Einzeilige Kommentare beginnen mit dem # Symbol.
|
||||
@ -30,8 +30,8 @@ Perl läuft auf über 100 Platformen von portablen Geräten bis hin zu Mainframe
|
||||
my $animal = "camel";
|
||||
my $answer = 42;
|
||||
|
||||
# Scalare Werte könnne Zeichenketten, Ganzzahlen und Gleitkomma-Zahlen sein.
|
||||
# Perl convertiert automatisch zwischen diesen Werten wenn nötig.
|
||||
# Scalare Werte können Zeichenketten, Ganzzahlen und Gleitkomma-Zahlen sein.
|
||||
# Perl konvertiert automatisch zwischen diesen Werten wenn nötig.
|
||||
|
||||
## Arrays
|
||||
# Ein Array repräsentiert eine Liste von Werten:
|
||||
@ -42,7 +42,7 @@ my @mixed = ("camel", 42, 1.23);
|
||||
|
||||
|
||||
## Hashes
|
||||
# Ein Hash representiert ein Set von Schlüssel/Wert Paaren:
|
||||
# Ein Hash repräsentiert ein Set von Schlüssel/Wert Paaren:
|
||||
|
||||
my %fruit_color = ("apple", "red", "banana", "yellow");
|
||||
|
||||
@ -55,7 +55,7 @@ my %fruit_color = (
|
||||
# Scalare, Arrays und Hashes sind in perldata sehr genau dokumentiert.
|
||||
# (perldoc perldata)
|
||||
|
||||
# Komplexere Daten-Typen können mit hilfe von Referenzen konstruiert werden.
|
||||
# Komplexere Daten-Typen können mithilfe von Referenzen konstruiert werden.
|
||||
# Dies erlaubt das erstellen von Listen und Hashes in Listen und Hashes.
|
||||
|
||||
#### Bedingte Ausführungs- und Schleifen-Konstrukte.
|
||||
|
@ -1,12 +1,11 @@
|
||||
---
|
||||
language: processing
|
||||
language: Processing
|
||||
filename: learnprocessing.pde
|
||||
contributors:
|
||||
- ["Phone Thant Ko", "http://github.com/phonethantko"]
|
||||
- ["Divay Prakash", "https://github.com/divayprakash"]
|
||||
translators:
|
||||
- ["caminsha", "https://github.com/caminsha"]
|
||||
filename: processing-de.md
|
||||
lang: de-de
|
||||
---
|
||||
|
||||
@ -34,7 +33,7 @@ offiziellen IDE, damit die Programme kompiliert und ausgeführt werden können.
|
||||
/*
|
||||
Da Processing von Java abstammt, ist die Syntax für Kommentare gleich
|
||||
wie bei Java (wie du vielleicht oben bemerkt hast)!
|
||||
Mehrzeilige Kommentare werden wie hier umschloßen.
|
||||
Mehrzeilige Kommentare werden wie hier umschlossen.
|
||||
*/
|
||||
|
||||
/* -------------------------------------------------
|
||||
@ -59,7 +58,7 @@ size(width, height, [renderer]); // bestimme die Canvasgröße mit dem optionale
|
||||
// Parameter `renderer`.
|
||||
// Du wirst innerhalb dieses Dokuments noch weitere Parameter sehen.
|
||||
|
||||
// Wenn du möchstest, dass Code unendlich oft ausgeführt wird, so muss dieser
|
||||
// Wenn du möchtest, dass der Code unendlich oft ausgeführt wird, so muss dieser
|
||||
// Code innerhalb der `draw()`-Methode stehen.
|
||||
// `draw()` muss existieren, wenn du möchtest, dass das Programm durchgehend
|
||||
// läuft. Die `draw()`-Methode darf nur einmal vorkommen.
|
||||
@ -107,7 +106,7 @@ double doubleValue = 1.12345D // Double (64-Bit Gleitkommazahl)
|
||||
// lediglich die wichtigsten durch.
|
||||
|
||||
// String
|
||||
// Während der Datentyp `char` einfache Anzührungszeichen (' ') braucht, haben
|
||||
// Während der Datentyp `char` einfache Anführungszeichen (' ') braucht, haben
|
||||
// Strings doppelte Anführungszeichen (" ").
|
||||
String sampleString = "Hallo, Processing!";
|
||||
// Strings können auch durch ein Array von `char`s erstellt werden.
|
||||
@ -137,11 +136,11 @@ ArrayList<Integer> intArrayList = new ArrayList<Integer>();
|
||||
// Da Processing auf Java basiert, unterstützt Processing die Objektorientierte
|
||||
// Programmierung. Dies bedeutet, dass du grundsätzlich jegliche Datentypen
|
||||
// selber erstellen kannst und diese nach deinen Bedürfnissen manipulieren kannst.
|
||||
// Selbstverständlich muss eine Klasse definiert werden bevor du ein Objekt
|
||||
// davon instanzieren kannst.
|
||||
// Selbstverständlich muss eine Klasse definiert werden, bevor du ein Objekt
|
||||
// davon instanziieren kannst.
|
||||
// Format: ClassName InstanceName
|
||||
SomeRandomClass myObject // hier musst du das Objekt später instazieren
|
||||
// Hier wird das Objekt direkt instanziert:
|
||||
SomeRandomClass myObject // hier musst du das Objekt später instanziieren
|
||||
// Hier wird das Objekt direkt instanziiert:
|
||||
SomeRandomClass myObjectInstantiated = new SomeRandomClass();
|
||||
|
||||
// Processing hat noch weitere Collections (wie zum Beispiel Dictionaries und
|
||||
@ -348,7 +347,7 @@ sphere(radius); // Die Größe wird definiert durch den Parameter `radius`
|
||||
-------------------------------------------------
|
||||
*/
|
||||
|
||||
// Tranformationen sind nützlich, um ständig zu wissen, wo die Koordinaten und
|
||||
// Transformationen sind nützlich, um ständig zu wissen, wo die Koordinaten und
|
||||
// die Ecken einer Form sind, welche du gezeichnet hast. Grundsätzlich sind dies
|
||||
// Matrizenoperationen. `pushMatrix()`, `popMatrix()` und `translate()`.
|
||||
pushMatrix(); // Speichert das aktuelle Koordinatensystem auf dem Stack
|
||||
@ -362,7 +361,7 @@ translate(x,y); // Setzt den Ursprung zu diesem Punkt.
|
||||
translate(x, y, z); // Pendant zu der oberen Funktion im dreidimensionalen Raum
|
||||
|
||||
// Rotationen
|
||||
rotate(angle); // Rotiere, um den Betrag, welcher spezifiert wurde.
|
||||
rotate(angle); // Rotiere, um den Betrag, welcher spezifiziert wurde.
|
||||
// Es gibt drei Pendants im dreidimensionalen Raum.
|
||||
// Namentlich sind dies: `rotateX(angle)`, `rotateY(angle)` und `rotateZ(angle)`
|
||||
|
||||
@ -405,7 +404,7 @@ Wenn du weitere Dinge mit Processing kennenlernen willst, dann gibt es unzählig
|
||||
Dinge, welche du mit Processing machen kannst. Das Rendern von Modellen,
|
||||
Schattierungen und viele mehr. Für ein kurzes Tutorial bietet Processing zu viel,
|
||||
daher verweise ich dich, falls du interessiert bist, auf die offizielle
|
||||
Dokumentaion.
|
||||
Dokumentation.
|
||||
|
||||
```
|
||||
// Bevor wir weiterfahren, werde ich einige Aspekte zum Importieren von
|
||||
@ -431,7 +430,7 @@ was man in Processing mit nur wenigen Zeilen Code machen kann.
|
||||
Kopiere den nachfolgenden Code in deine Processing IDE.
|
||||
|
||||
```
|
||||
// Disclaimer: Ich habe das Porgramm nicht selbst geschriben. Diese Skizze
|
||||
// Disclaimer: Ich habe das Programm nicht selbst geschrieben. Diese Skizze
|
||||
// stammt aus openprocessing, allerdings soll dieses Programm zeigen, wie wenig
|
||||
// Zeilen Code notwendig sind, um etwas Cooles zu machen.
|
||||
// Abgerufen von: (https://www.openprocessing.org/sketch/559769)
|
||||
@ -482,7 +481,7 @@ void branch(float len) {
|
||||
}
|
||||
```
|
||||
|
||||
Processing ist einfach zu erlernen und ist vorallem nützlich, um Multimedia-
|
||||
Processing ist einfach zu erlernen und ist vor allem nützlich, um Multimedia-
|
||||
Inhalte (auch in 3D) zu erstellen ohne viel Code zu schreiben. Es ist so einfach
|
||||
gehalten, dass man den Code durchlesen kann und man versteht den Programmablauf
|
||||
bereits.
|
||||
|
@ -87,7 +87,7 @@ div(class=meineKlasse)
|
||||
div(style=meineStile)
|
||||
//- <div style="color:white;background-color:blue;"></div>
|
||||
|
||||
//- JS Attributte
|
||||
//- JS Attribute
|
||||
- const meineAttribute = {"src": "foto.png", "alt": "meine Bilder"}
|
||||
img&attributes(meineAttribute)
|
||||
//- <img src="foto.png" alt="meine Bilder">
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: framework
|
||||
framework: PyQT
|
||||
framework: PyQt
|
||||
filename: learnpyqt-de.py
|
||||
contributors:
|
||||
- ["Nathan Hughes", "https://github.com/sirsharpest"]
|
||||
|
@ -113,7 +113,7 @@ False or True #=> True
|
||||
"{0} mag Spaghetti, {0} liebt es zu Schwimmen und ganz besonders mag {0} {1}".format("Hans", "Blattsalat")
|
||||
#=> "Hans mag Spaghetti, Hans liebt es zu Schwimmen und ganz besonders mag Hans Blattsalat"
|
||||
|
||||
# Die Formatierung kann auch mit `f-strings` oder formattierten Strings gemacht
|
||||
# Die Formatierung kann auch mit `f-strings` oder formatierten Strings gemacht
|
||||
# werden (ab Python 3.6+)
|
||||
name = "Sandra"
|
||||
f"Sie hat gesagt, ihr Name sei {name}." # => Sie hat gesagt, ihr Name sei Sandra."
|
||||
@ -242,7 +242,7 @@ list(filled_dict.values()) #=> [3, 2, 1]
|
||||
"one" in filled_dict #=> True
|
||||
1 in filled_dict #=> False
|
||||
|
||||
# Einen nicht vorhandenenen Schlüssel zu suchen, löst einen KeyError aus
|
||||
# Einen nicht vorhandenen Schlüssel zu suchen, löst einen KeyError aus
|
||||
filled_dict["four"] # KeyError
|
||||
|
||||
# Mit der get-Methode verhindern wir das
|
||||
|
@ -192,7 +192,7 @@ d, e, f = 4, 5, 6
|
||||
e, d = d, e # d is now 5 and e is now 4
|
||||
|
||||
|
||||
# Dictionarys (Wörterbucher) speichern Key-Value-Paare
|
||||
# Dictionarys (Wörterbücher) speichern Key-Value-Paare
|
||||
empty_dict = {}
|
||||
# Hier ein gefülltes Wörterbuch
|
||||
filled_dict = {"one": 1, "two": 2, "three": 3}
|
||||
@ -213,7 +213,7 @@ filled_dict.values() #=> [3, 2, 1]
|
||||
"one" in filled_dict #=> True
|
||||
1 in filled_dict #=> False
|
||||
|
||||
# Einen nicht vorhandenenen Schlüssel zu suchen, löst einen KeyError aus
|
||||
# Einen nicht vorhandenen Schlüssel zu suchen, löst einen KeyError aus
|
||||
filled_dict["four"] # KeyError
|
||||
|
||||
# Mit der get-Methode verhindern wir das
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: framework
|
||||
framework: Qt Framework
|
||||
framework: Qt
|
||||
language: C++
|
||||
filename: learnqt-de.cpp
|
||||
contributors:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: restructured text (RST)
|
||||
language: reStructuredText (RST)
|
||||
filename: restructuredtext-de.rst
|
||||
contributors:
|
||||
- ["DamienVGN", "https://github.com/martin-damien"]
|
||||
@ -36,7 +36,7 @@ initiiert werden.
|
||||
|
||||
Ein einfaches Beispiel für die Dateisyntax:
|
||||
|
||||
```
|
||||
```rst
|
||||
.. Zeilen, die mit zwei Punkten starten sind spezielle Befehle.
|
||||
|
||||
.. Wenn kein Befehl gefunden wird, wird die Zeile als Kommentar gewertet.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: ruby
|
||||
language: Ruby
|
||||
filename: ruby-de.rb
|
||||
contributors:
|
||||
- ["David Underwood", "http://theflyingdeveloper.com"]
|
||||
@ -75,7 +75,7 @@ nil.class #=> NilClass
|
||||
true.class #=> TrueClass
|
||||
false.class #=> FalseClass
|
||||
|
||||
# Gleicheit
|
||||
# Gleichheit
|
||||
1 == 1 #=> true
|
||||
2 == 1 #=> false
|
||||
|
||||
@ -190,7 +190,7 @@ array = [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5]
|
||||
# Array können verschiedene Typen beinhalten
|
||||
[1, 'hello', false] #=> [1, "hello", false]
|
||||
|
||||
## Arrays könnenindiziert werden.
|
||||
## Arrays können indiziert werden.
|
||||
|
||||
# Von vorne...
|
||||
array[0] #=> 1
|
||||
@ -207,8 +207,8 @@ array[2, 3] #=> [3, 4, 5]
|
||||
# ...oder mit einem Range...
|
||||
array[1..3] #=> [2, 3, 4]
|
||||
|
||||
# Du kanns ein Array umkehren.
|
||||
# Gib ein neues Array mit umgkehrten Werten zurück
|
||||
# Du kannst ein Array umkehren.
|
||||
# Gib ein neues Array mit umgekehrten Werten zurück
|
||||
[1,2,3].reverse #=> [3,2,1]
|
||||
|
||||
# Kehre ein Array an Ort und Stelle um, um die Variable mit den
|
||||
@ -257,7 +257,7 @@ hash.value?(3) #=> true
|
||||
# Tipp: Arrays und Hashes sind Enumerables!
|
||||
# Sie haben viele nützliche Methoden gemein, wie each, map, count, und andere.
|
||||
|
||||
# Kontrolstrukturen
|
||||
# Kontrollstrukturen
|
||||
|
||||
# Bedingungen
|
||||
if true
|
||||
@ -427,7 +427,7 @@ surround { puts 'hallo Welt' }
|
||||
|
||||
# Blocks können in ein 'Proc' Objekt umgewandelt werden.
|
||||
# Dieses ist eine Art Container um den Block und erlaubt ihn an eine
|
||||
# andere Methode zu übergeben, ihn in einen anderen Gültigkeitsbereicht
|
||||
# andere Methode zu übergeben, ihn in einen anderen Gültigkeitsbereich
|
||||
# einzubinden oder ihn andersweitig zu verändern.
|
||||
# Am häufigsten findet man dies bei Parameterlisten von Methoden, in Form
|
||||
# eines letzten '&block' Parameters, der den Block – wenn es einen gibt –
|
||||
@ -487,7 +487,7 @@ best *ranked_competitors
|
||||
# Wenn ein Methodenname mit einem Ausrufezeichen endet, dann tut diese Methode
|
||||
# per Konvention etwas Destruktives, wie z.B. das aufrufende Objekt zu
|
||||
# verändern.
|
||||
# Viele Mehtoden haben eine !-Version um eine direkte Änderung zu machen und
|
||||
# Viele Methoden haben eine !-Version um eine direkte Änderung zu machen und
|
||||
# eine Nicht-!-Version, die ein neues Objekt mit den Veränderungen zurück gibt.
|
||||
company_name = "Dunder Mifflin"
|
||||
company_name.upcase #=> "DUNDER MIFFLIN"
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: ruby ecosystem
|
||||
tool: Ruby ecosystem
|
||||
contributors:
|
||||
- ["Jon Smock", "http://github.com/jonsmock"]
|
||||
- ["Rafal Chmiel", "http://github.com/rafalchmiel"]
|
||||
@ -72,7 +72,7 @@ Am ausgereiftesten und stabilsten:
|
||||
|
||||
* [MRI](https://github.com/ruby/ruby) - Geschrieben in C, das ist die Referenz Implementierung.
|
||||
Sie ist 100% kompatibel (mit sich selbst ;-). Alle anderen rubies
|
||||
bleiben kompatibel mit MRI (siehe [RubySpec](#rubyspec) weiter unten).
|
||||
bleiben kompatibel mit MRI (siehe [Ruby Spec](#ruby-spec) weiter unten).
|
||||
* [JRuby](http://jruby.org/) - Geschrieben in Java and Ruby, Robust und ziemlich schnell.
|
||||
Der größte Vorteil von JRuby ist die Interoperabilität mit JVM/Java und damit die
|
||||
Benutzung von Ruby im Java Ecosystem.
|
||||
@ -91,16 +91,16 @@ Weniger ausgereift/kompatibel:
|
||||
* [Topaz](http://topazruby.com/) - Geschrieben in RPython (via PyPy)
|
||||
Topaz ist noch ziemlich jung und versucht die schnellste Implementierung
|
||||
zu werden.
|
||||
* [IronRuby](http://ironruby.net/) - Geschrieben in C# für die .NET Plaftform
|
||||
* [IronRuby](http://ironruby.net/) - Geschrieben in C# für die .NET Plattform
|
||||
Das letzte Release von IronRuby ist mittlerweile 5 Jahre her.
|
||||
|
||||
Die Ruby Implementierungen haben ihre eigenen Versionsnummern, sind aber
|
||||
trotzdem immer zu einer MRI Version kompatibel.
|
||||
Viele können sogar zwischen verschiedenen Modi wechseln (1.8 mode -> 1.9 mode)
|
||||
|
||||
## RubySpec
|
||||
## Ruby Spec
|
||||
|
||||
Die meisten Ruby Implementierungen vertrauen der [RubySpec](http://rubyspec.org/).
|
||||
Die meisten Ruby Implementierungen vertrauen der [Ruby Spec](https://github.com/ruby/spec).
|
||||
sehr stark. Da Ruby keine offizielle Spezifikation hat, hat die
|
||||
Community ausführbare Specs (in Ruby) geschrieben, um so die Kompatibilität
|
||||
zur MRI testen zu können.
|
||||
|
@ -11,7 +11,7 @@ filename: lernerust-de.rs
|
||||
Rust ist eine Programmiersprache von Mozilla Research.
|
||||
Rust vereint Sicherheit, Nebenläufigkeit und eine hohe Praxistauglichkeit.
|
||||
|
||||
Sicherheit bedeuted, dass Programmierfehler ausgeschlossen werden, die zu
|
||||
Sicherheit bedeutet, dass Programmierfehler ausgeschlossen werden, die zu
|
||||
Speicherzugriffsfehlern führen könnten. Das funktioniert u.a. dadurch, dass
|
||||
es keinen Garbage Collector gibt, sondern ein besonderes Typsystem.
|
||||
|
||||
@ -21,8 +21,8 @@ entwickelt, dass es einfach keine stabile gab und geraten wurde den
|
||||
nightly build zu nutzen.
|
||||
|
||||
Am 15. Mai 2015 wurde Rust 1.0 freigegeben, und zwar mit der Garantie einer
|
||||
Abwärtskompatabilität. Verbesserungen der Kompilierzeit und andere Compiler
|
||||
verbesserungen finden im Moment im nightly build statt. Von Rust gibt es im
|
||||
Abwärtskompatibilität. Verbesserungen der Kompilierzeit und andere Compiler
|
||||
Verbesserungen finden im Moment im nightly build statt. Von Rust gibt es im
|
||||
Moment ungefähr alle sechs Wochen ein Release. Rust 1.1 beta wurde zusammen
|
||||
mit dem 1.0 Release zur Verfügung gestellt.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: sass
|
||||
language: Sass
|
||||
filename: learnsass-de.scss
|
||||
contributors:
|
||||
- ["Laura Kyle", "https://github.com/LauraNK"]
|
||||
@ -439,7 +439,7 @@ Du kannst beide Syntax-Optionen benutzen, gehe einfach in die Einstellungen und
|
||||
Sass kann in jedem Projekt verwendet werden, solange du ein Programm hast, um es in CSS zu kompilieren.
|
||||
Du solltest verifizieren, dass das CSS, was du verwendest, mit deinen Ziel-Browsern kompatibel ist.
|
||||
|
||||
[QuirksMode CSS](http://www.quirksmode.org/css/) und [CanIUse](http://caniuse.com) sind gute Resourcen um die Kompatibilät zu überpüfen.
|
||||
[QuirksMode CSS](http://www.quirksmode.org/css/) und [CanIUse](http://caniuse.com) sind gute Resourcen um die Kompatibilität zu überprüfen.
|
||||
|
||||
|
||||
## Literaturhinweise
|
||||
|
@ -307,7 +307,7 @@ do {
|
||||
|
||||
|
||||
// Endrekursionen sind idiomatisch um sich wiederholende
|
||||
// Aufgaben in Scala zu lösen. Rekursive Funtionen benötigen explizit einen
|
||||
// Aufgaben in Scala zu lösen. Rekursive Funktionen benötigen explizit einen
|
||||
// Rückgabe-Typ, der Compiler kann ihn nicht erraten.
|
||||
// Der Rückgabe-Typ in diesem Beispiel ist Unit:
|
||||
|
||||
@ -457,7 +457,7 @@ class Dackel extends Hund {
|
||||
}
|
||||
|
||||
// Object
|
||||
// Wird ein Objekt ohne das Schlüsselwort "new" instanziert, wird das sog.
|
||||
// Wird ein Objekt ohne das Schlüsselwort "new" instanziiert, wird das sog.
|
||||
// "companion object" aufgerufen. Mit dem "object" Schlüsselwort wird so
|
||||
// ein Objekt (Typ UND Singleton) erstellt. Damit kann man dann eine Klasse
|
||||
// verwenden, ohne ein Objekt instanziieren zu müssen.
|
||||
@ -634,10 +634,10 @@ val patternFunc: Person => String = {
|
||||
// 7. "Higher-order"-Funktionen
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// Scala erlaubt, dass Methoden und Funktionen wiederum Funtionen und Methoden
|
||||
// Scala erlaubt, dass Methoden und Funktionen wiederum Funktionen und Methoden
|
||||
// als Aufrufparameter oder Rückgabewert verwenden. Diese Methoden heißen
|
||||
// higher-order functions.
|
||||
// Es gibt zahlreiche higher-order-Funtionen nicht nur für Listen, auch für
|
||||
// Es gibt zahlreiche higher-order-Funktionen nicht nur für Listen, auch für
|
||||
// die meisten anderen Collection-Typen, sowie andere Klassen in Scala.
|
||||
// Nennenswerte sind:
|
||||
// "filter", "map", "reduce", "foldLeft"/"foldRight", "exists", "forall"
|
||||
@ -796,7 +796,7 @@ import scala.collection.immutable.{List, Map}
|
||||
import scala.collection.immutable.{List => ImmutableList}
|
||||
|
||||
|
||||
// Importiere alle Klasses, mit Ausnahem von....
|
||||
// Importiere alle Klassen, mit Ausnahme von....
|
||||
// Hier ohne: Map and Set:
|
||||
|
||||
import scala.collection.immutable.{Map => _, Set => _, _}
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: framework
|
||||
filename: learnshutit-de.html
|
||||
filename: learnshutit-de.py
|
||||
framework: ShutIt
|
||||
contributors:
|
||||
- ["Ian Miell", "http://ian.meirionconsulting.tk"]
|
||||
@ -322,8 +322,8 @@ Um mehr zu erfahren, siehe:
|
||||
[ShutIt](https://ianmiell.github.io/shutit/)
|
||||
[GitHub](https://github.com/ianmiell/shutit/blob/master/README.md)
|
||||
|
||||
Es handelt sich um ein breiteres Automatiesierungsframework, und das oben
|
||||
sogenannte ist der sogennante 'standalone Modus'.
|
||||
Es handelt sich um ein breiteres Automatisierungsframework, und das oben
|
||||
genannte ist der sogenannte 'standalone Modus'.
|
||||
|
||||
Feedback, feature requests, 'Wie mache ich es' sind herzlich willkommen! Erreiche mit unter
|
||||
[@ianmiell](https://twitter.com/ianmiell)
|
||||
|
@ -8,10 +8,10 @@ translators:
|
||||
lang: de-de
|
||||
---
|
||||
|
||||
Die Structured Query Language (SQL) ist eine ISO Standardsprache zum Erstellen und Arbeiten mit Datenbanken, die in einem Set von Tabellen gespeichert sind. Implementiereungen fügen in der Regel eigene Erweiterungen zur Sprache hinzu; [Der Vergleich von verschiedenen SQL Implementierungen](http://troels.arvin.dk/db/rdbms/) ist eine gute Referenz für Produktunterschiede.
|
||||
Die Structured Query Language (SQL) ist eine ISO Standardsprache zum Erstellen und Arbeiten mit Datenbanken, die in einem Set von Tabellen gespeichert sind. Implementierungen fügen in der Regel eigene Erweiterungen zur Sprache hinzu; [Der Vergleich von verschiedenen SQL Implementierungen](http://troels.arvin.dk/db/rdbms/) ist eine gute Referenz für Produktunterschiede.
|
||||
|
||||
Implementierungen bieten typischerweise eine Eingabeaufforderung, in den du die hier gezeigten Befehle interaktiv eingeben kannst. Sie bieten auch einen Weg, um Serien von Befehlen in einer Skript auszuführen. (Die Anzeige, dass du fertig mit der interaktiven Eingabeaufforderung bist, ist ein gutes Beispiel für etwas, was nicht standardisiert ist. Die meisten SQL Implementierungen unterstützen die Schlüsselwörter QUIT, EXIT oder beides.
|
||||
Einige dieser Beispielbefehle gehen davon aus, dass sie die [MySQL employee sample database](https://dev.mysql.com/doc/employee/en/), verfügbar auf [GitHub](https://github.com/datacharmer/test_db), schon geladen wurde. Die GitHub Dateien sind Skripte von Befehlen, ähnlich wie die entsprechenden Befehle unten, die Tabellen mit Daten über die Mitarbeiter einer fiktionale Firma erstellen und füllen. Die Syntax für die Ausführung dieser Skripte hängt von der verwendeten SQL-Implementierung ab. Ein Dienstprogramm, das man über die Betriebssystemeingabeaufforderung ausführen kann, ist typisch.
|
||||
Einige dieser Beispielbefehle gehen davon aus, dass sie die [MySQL employee sample database](https://dev.mysql.com/doc/employee/en/), verfügbar auf [GitHub](https://github.com/datacharmer/test_db), schon geladen wurde. Die GitHub Dateien sind Skripte von Befehlen, ähnlich wie die entsprechenden Befehle unten, die Tabellen mit Daten über die Mitarbeiter einer fiktiven Firma erstellen und füllen. Die Syntax für die Ausführung dieser Skripte hängt von der verwendeten SQL-Implementierung ab. Ein Dienstprogramm, das man über die Betriebssystemeingabeaufforderung ausführen kann, ist typisch.
|
||||
|
||||
|
||||
```sql
|
||||
@ -19,7 +19,7 @@ Einige dieser Beispielbefehle gehen davon aus, dass sie die [MySQL employee samp
|
||||
|
||||
-- SQL unterscheidet nicht zwischen Groß- und Kleinschreibung bei
|
||||
-- Schlüsselwörtern. Die Beispielbefehle folgen der Konvention der
|
||||
-- Schreibweise in Großbuchstaben, damit sie leichter von Datebank-,
|
||||
-- Schreibweise in Großbuchstaben, damit sie leichter von Datenbank-,
|
||||
-- Tabellen- und Spaltennamen zu unterscheiden sind.
|
||||
|
||||
-- Erstellen und Löschen einer Datenbank. Bei Datenbank- und Tabellennamen
|
||||
@ -70,11 +70,11 @@ SELECT COUNT(*) FROM departments;
|
||||
-- Teilezeichenkette des Wertes dept_name haben.
|
||||
SELECT COUNT(*) FROM departments WHERE dept_name LIKE '%en%';
|
||||
|
||||
-- Eine Vereinigung von Informatione von mehreren Tabellen:
|
||||
-- Eine Vereinigung von Informationen von mehreren Tabellen:
|
||||
-- Die titles Tabelle zeigt, wer welche Jobtitel hatte, wer welche Mitarbeiter-
|
||||
-- nummer hat, von welchen Startdatum und zu welchen Enddatum
|
||||
-- Wir rufen diese Information ab, aber anstelle der Mitarbeiternummer,
|
||||
-- verwenden wir die Mitarbeiternummer als Querverweis auf die empoyees Tabelle
|
||||
-- verwenden wir die Mitarbeiternummer als Querverweis auf die employees Tabelle
|
||||
-- um die die Vor- und Nachnamen jedes Mitarbeiters zu erhalten.
|
||||
-- (und nur 10 Reihen)
|
||||
SELECT employees.first_name, employees.last_name,
|
||||
@ -88,7 +88,7 @@ FROM titles INNER JOIN employees ON
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_TYPE='BASE TABLE';
|
||||
|
||||
-- Erstelle eine Tabelle in der aktuell verwedeten Datenbank
|
||||
-- Erstelle eine Tabelle in der aktuell verwendeten Datenbank
|
||||
-- mit dem Namen tablename1, in der die beiden Spalten angezeigt werden
|
||||
-- Es gibt viele weiteren Optionen, wie man die Spalten spezifizieren kann,
|
||||
-- wie z.B. deren Datentyp.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: swift
|
||||
language: Swift
|
||||
contributors:
|
||||
- ["Grant Timmerman", "http://github.com/grant"]
|
||||
- ["Christopher Bess", "http://github.com/cbess"]
|
||||
@ -210,7 +210,7 @@ default: // notwendig (um alle möglichen Eingaben zu verarbeiten)
|
||||
|
||||
:param: name Ein Name
|
||||
:param: day Ein Tag
|
||||
:returns: Ein String, der Name und Tag beinhält.
|
||||
:returns: Ein String, der Name und Tag enthält.
|
||||
*/
|
||||
func greet(name: String, day: String) -> String {
|
||||
return "Hello \(name), today is \(day)."
|
||||
@ -585,7 +585,7 @@ prefix func !!! (inout shape: Square) -> Square {
|
||||
// Aktueller Wert
|
||||
print(mySquare.sideLength) // 4
|
||||
|
||||
// Wert nach verwendung des eigenen Operators
|
||||
// Wert nach Verwendung des eigenen Operators
|
||||
!!!mySquare
|
||||
print(mySquare.sideLength) // 12
|
||||
```
|
||||
|
@ -18,7 +18,7 @@ C-Bibliothek verwendet werden. Sogar in Fällen in denen die Script-Fähigkeiten
|
||||
nicht nötig sind. Denn Tcl stellt Daten-Strukturen wie dynamische Zeichenketten,
|
||||
Listen und Hash-Tabellen bereit. Die C-Bibliothek stellt auch portable
|
||||
Funktionen zur Verfügung: Laden von dynamischen Bibliotheken, Zeichenketten
|
||||
formatierung und Code Konversion, Dateisystem Operationen, Netzwerk Operationen
|
||||
Formatierung und Codekonvertierung, Dateisystemoperationen, Netzwerkoperationen
|
||||
und mehr.
|
||||
|
||||
|
||||
@ -40,11 +40,11 @@ Verschiedenste herausragende Fähigkeiten von Tcl:
|
||||
Wenn Lisp ein Listen-Prozessor ist, dann ist TCl ein Zeichenketten-Prozessor.
|
||||
Alle Werte sind Zeichenketten. Eine Liste ist ein Zeichenketten-Format. Eine
|
||||
Prozedur-Definition ist ein Zeichenketten-Format. Um leistungsfähig zu sein,
|
||||
werden Tcl-intern diese Zeichenketten in Strukutierter-Form gepuffert. Ein
|
||||
werden Tcl-intern diese Zeichenketten in Strukturierter-Form gepuffert. Ein
|
||||
Beispiel: Der "list" Befehl arbeitet mit diesen internen gepufferten
|
||||
Repräsentationen. Tcl kümmert sich selbständig darum die String-Repräsentationen
|
||||
zu aktualisieren, falls dies im Skript benötigt werden sollten. Das Kopieren-
|
||||
beim-Schreiben-Design von Tcl erlaubt es Skript-Authoren mit großen Daten-
|
||||
beim-Schreiben-Design von Tcl erlaubt es Skript-Autoren mit großen Daten-
|
||||
Strukturen zu arbeiten ohne zusätzlichen Speicher-Overhead. Prozeduren werden
|
||||
automatisch byte-kompiliert außer sie verwenden dynamische Befehle wie zum
|
||||
Beispiel "uplevel", "upvar und "trace".
|
||||
@ -98,11 +98,11 @@ set greeting3 ations
|
||||
set greeting1 Sal; set greeting2 ut; set greeting3 ations
|
||||
|
||||
|
||||
# Das Dollar-Zeichen zeigt eine Variablen-Substitution an.
|
||||
# Das Dollar-Zeichen zeigt eine Variablen-Substitutionen an.
|
||||
set greeting $greeting1$greeting2$greeting3
|
||||
|
||||
|
||||
# Eckige-Klammern zeigen Befehls-Substitionen an. Das Ergebnis des Befehls wird an
|
||||
# Eckige-Klammern zeigen Befehls-Substitutionen an. Das Ergebnis des Befehls wird an
|
||||
# Stelle des Klammern-Ausdrucks eingefügt. Wenn man dem "set" Befehl nur den
|
||||
# Namen einer Variablen übergibt, gibt er den Wert der Variablen zurück.
|
||||
set greeting $greeting1$greeting2[set greeting3]
|
||||
@ -119,7 +119,7 @@ set greeting $greeting[
|
||||
]
|
||||
|
||||
|
||||
# Der Backslash unterdrück die Bedeutung von Sonderzeichen
|
||||
# Der Backslash unterdrückt die Bedeutung von Sonderzeichen
|
||||
set amount \$16.42
|
||||
|
||||
|
||||
@ -164,7 +164,7 @@ set {*}{name Neo}
|
||||
set name Neo
|
||||
|
||||
|
||||
# Ein Array ist eine spezielle Varible die also Kontainer für andere Variablen
|
||||
# Ein Array ist eine spezielle Variable die also Container für andere Variablen
|
||||
# dient.
|
||||
set person(name) Neo
|
||||
set person(gender) male
|
||||
@ -202,7 +202,7 @@ namespace delete ::
|
||||
|
||||
# Wegen des Verhaltens der Namens-Auflösung ist es sicherer den "variable"
|
||||
# Befehl zu verwenden um in einem Namensraum einen Wert zu deklarieren oder
|
||||
# zuzuweisen. Wenn eine Variable mit dem namen "name" bereits im globalen
|
||||
# zuzuweisen. Wenn eine Variable mit dem Namen "name" bereits im globalen
|
||||
# Namensraum existiert, bewirkt der "set" Befehl das der globalen Variable ein
|
||||
# Wert zugewiesen wird, anstatt eine Variable im lokalen Namensraum zu erzeugen
|
||||
namespace eval people {
|
||||
@ -316,9 +316,9 @@ set amount [lindex $amounts 1]
|
||||
|
||||
# Geschwungene Klammern und Backslashes können verwendet werden um komplexe
|
||||
# Werte in einer Liste zu formatieren. Eine Liste sieht aus wie ein Skript,
|
||||
# allerdings verlieren verlieren Zeilenumbrüche und Doppelüunkte ihre
|
||||
# allerdings verlieren Zeilenumbrüche und Doppelpunkte ihre
|
||||
# besondere Bedeutung. Diese Funktionalität macht Tcl homoikonisch. Die
|
||||
# folgende Liste enhtält drei Elemente.
|
||||
# folgende Liste enthält drei Elemente.
|
||||
set values {
|
||||
|
||||
one\ two
|
||||
@ -344,7 +344,7 @@ set values [list one \{ three four]
|
||||
lappend values { } ;# Ein Leerzeichen als Element der Liste hinzufügen
|
||||
|
||||
|
||||
# Mit "eval" können Werte als Skripts evaluiert weden.
|
||||
# Mit "eval" können Werte als Skripts evaluiert werden.
|
||||
eval {
|
||||
set name Neo
|
||||
set greeting "Hello, $name"
|
||||
@ -352,7 +352,7 @@ eval {
|
||||
|
||||
|
||||
# Eine Liste kann immer an "eval" übergeben werden, solange die Liste einen
|
||||
# einzigen Befehl entält.
|
||||
# einzigen Befehl enthält.
|
||||
eval {set name Neo}
|
||||
eval [list set greeting "Hello, $name"]
|
||||
|
||||
@ -364,7 +364,7 @@ lappend command {Archibald Sorbisol}
|
||||
eval $command
|
||||
|
||||
|
||||
# Es ist ein häufiger Fehler die Listen funktionen beim Aufbauen von Listen
|
||||
# Es ist ein häufiger Fehler die Listenfunktionen beim Aufbauen von Listen
|
||||
# nicht zu verwenden.
|
||||
set command {set name}
|
||||
append command { Archibald Sorbisol}
|
||||
@ -431,7 +431,7 @@ proc set_double {varname value} {
|
||||
rename ::while {}
|
||||
|
||||
|
||||
# Definieren einen neuen "while" Befehl mit hilfe des "proc" Befehls.
|
||||
# Definieren einen neuen "while" Befehl mithilfe des "proc" Befehls.
|
||||
# Ausführlichere Fehler-Behandlung wird dem Leser als Übung überlassen.
|
||||
proc while {condition script} {
|
||||
if {[uplevel 1 [list expr $condition]]} {
|
||||
@ -460,7 +460,7 @@ puts [countdown 1] ;# -> 2
|
||||
puts [countdown 2] ;# -> 2
|
||||
puts [countdown 1] ;# -> 1
|
||||
puts [countdown 1] ;# -> 0
|
||||
puts [coundown 1] ;# -> invalid command name "countdown1"
|
||||
puts [countdown 1] ;# -> invalid command name "countdown1"
|
||||
puts [countdown 2] ;# -> 1
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: vim
|
||||
tool: Vim
|
||||
lang: de-de
|
||||
contributors:
|
||||
- ["RadhikaG", "https://github.com/RadhikaG"]
|
||||
@ -240,7 +240,7 @@ set wildmenu
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
" Wenn eine neue Zeile erstellt wird und kein Dateispezifisches Einrücken
|
||||
" Wenn eine neue Zeile erstellt wird und kein dateispezifisches Einrücken
|
||||
" aktiviert ist, behält die neue Zeile die gleiche Einrückung wie die aktuelle
|
||||
" Zeile
|
||||
set autoindent
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: yaml
|
||||
language: YAML
|
||||
contributors:
|
||||
- ["Leigh Brenecki", "https://github.com/adambrenecki"]
|
||||
translators:
|
||||
@ -20,7 +20,7 @@ YAML ist eine Erweiterung von JSON mit der Erweiterung um syntaktisch wichtige Z
|
||||
#################
|
||||
|
||||
# Unser Kernobjekt (für das ganze Dokument) wird das Assoziative Datenfeld (Map) sein,
|
||||
# welches equivalent zu einem Hash oder einem Objekt einer anderen Sprache ist.
|
||||
# welches äquivalent zu einem Hash oder einem Objekt einer anderen Sprache ist.
|
||||
Schlüssel: Wert
|
||||
nochn_Schlüssel: Hier kommt noch ein Wert hin.
|
||||
eine_Zahl: 100
|
||||
@ -56,7 +56,7 @@ folded_style: >
|
||||
# COLLECTION TYPEN #
|
||||
####################
|
||||
|
||||
# Verschachtelung wird duch Einrückung erzielt.
|
||||
# Verschachtelung wird durch Einrückung erzielt.
|
||||
eine_verschachtelte_map:
|
||||
schlüssel: wert
|
||||
nochn_Schlüssel: Noch ein Wert.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: docker
|
||||
tool: Docker
|
||||
filename: docker.bat
|
||||
contributors:
|
||||
- ["Ruslan López", "http://javapro.org/"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: edn
|
||||
language: EDN
|
||||
filename: learnedn.edn
|
||||
contributors:
|
||||
- ["Jason Yeo", "https://github.com/jsyeo"]
|
||||
|
@ -1,6 +1,5 @@
|
||||
---
|
||||
category: tool
|
||||
tool: bash
|
||||
language: Bash
|
||||
contributors:
|
||||
- ["Dimitri Kokkonis", "https://github.com/kokkonisd"]
|
||||
filename: LearnBash-gr.sh
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
language: css
|
||||
language: CSS
|
||||
contributors:
|
||||
- ["Kostas Bariotis", "http://kostasbariotis.com"]
|
||||
filename: css-gr.html.markdown
|
||||
filename: css-gr.css
|
||||
lang: el-gr
|
||||
---
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
language: html
|
||||
filename: learnhtml-gr.html
|
||||
language: HTML
|
||||
filename: learnhtml-gr.txt
|
||||
contributors:
|
||||
- ["Dimitri Kokkonis", "https://github.com/kokkonisd"]
|
||||
lang: el-gr
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: java
|
||||
language: Java
|
||||
contributors:
|
||||
- ["Jake Prather", "http://github.com/JakeHP"]
|
||||
- ["Jakukyo Friel", "http://weakish.github.io"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
language: json
|
||||
filename: json-gr.html.markdown
|
||||
language: JSON
|
||||
filename: json-gr.json
|
||||
contributors:
|
||||
- ["Anna Harren", "https://github.com/iirelu"]
|
||||
- ["Marco Scannadinari", "https://github.com/marcoms"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: racket
|
||||
language: Racket
|
||||
filename: learnracket-gr.rkt
|
||||
contributors:
|
||||
- ["th3rac25", "https://github.com/voila"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: vim
|
||||
tool: Vim
|
||||
contributors:
|
||||
- ["RadhikaG", "https://github.com/RadhikaG"]
|
||||
filename: LearnVim-gr.txt
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: elisp
|
||||
language: Emacs Lisp
|
||||
contributors:
|
||||
- ["Bastien Guerry", "https://bzg.fr"]
|
||||
- ["Saurabh Sandav", "http://github.com/SaurabhSandav"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
category: tool
|
||||
tool: emacs
|
||||
tool: Emacs
|
||||
filename: emacs.txt
|
||||
contributors:
|
||||
- ["Joseph Riad", "https://github.com/Joseph-Riad"]
|
||||
@ -258,7 +258,7 @@ powerful and popular and may interest you in and of themselves.
|
||||
|
||||
## Org
|
||||
|
||||
Technnically, `org-mode`, a major mode for buffer editing that provides
|
||||
Technically, `org-mode`, a major mode for buffer editing that provides
|
||||
organizational tools. It is very difficult to succinctly describe what
|
||||
Org can do because it's a behemoth of a tool that has many diverse uses
|
||||
to different people. I will attempt to describe the main features I use
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
language: erlang
|
||||
language: Erlang
|
||||
contributors:
|
||||
- ["Giovanni Cappellotto", "http://giovanni.curlybrackets.it/"]
|
||||
filename: learnerlang.erl
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
|
||||
category: tool
|
||||
tool: amd
|
||||
tool: AMD
|
||||
contributors:
|
||||
- ["Frederik Ring", "https://github.com/m90"]
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user