<commit_before>![alt text](https://raw.githubusercontent.com/mathiasquintero/LlamaLang/master/logo.png "Small logo I made while I had time ;)")

# Llama Programming Language
Repository for the Llama Programming Language.
This is a Programming Language I'm defining since I wanted to try out Python and always wanted to make one. ;)

It's still a work in progress.
For any cool ideas just make an issue and feel free to fork this project and work on it as you like.

As soon as I'm done with the Interpreter I will probably get a few friends and write a full compiler.

So far it's really simple:

### Datatypes:

* Number (float or int)
* String
* Bool
* Function

#### Define a variable:

```
let myString = "My String"
let myNumber = 42
let isLlamaAwesome = true
```

#### Write a Comment:

Llama only allows for one line comments

```

// This is a comment

let myVar = 42 // This is an inline Comment

```

#### Define a function

```
let square = x -> x * x
```

so that:

```
square 25 // 625 (Number)
```

Functions are obviously First Class Citizens:

```
let redundant = f x -> f (f (f x))
let yell = x -> x + "!"
let hello = "Hello"

redundant yell hello // "Hello!!!"
```

#### Mathematical Operations Supported:

```
let a = 1
let b = 2

a + b
a - b
a * b
a / b
a ** b // Stands for a^b
```

#### Compare Data

```
let a = 5
let b = 4

a == b // false
a != b // true
```

#### Boolean Logic

```
let a = true
let b = false
a & b // false
a | b // true
```<commit_msg>Source tree didn't commit the readme... hmmm...<commit_after>![alt text](https://raw.githubusercontent.com/mathiasquintero/LlamaLang/master/logo.png "Small logo I made while I had time ;)")

# Llama Programming Language
Repository for the Llama Programming Language.
This is a Programming Language I'm defining since I wanted to try out Python and always wanted to make one. ;)

It's still a work in progress.
For any cool ideas just make an issue and feel free to fork this project and work on it as you like.

As soon as I'm done with the Interpreter I will probably get a few friends and write a full compiler.

So far it's really simple:

### Datatypes:

* Number (float or int)
* String
* Bool
* Function

#### Define a variable:

```
let myString = "My String"
let myNumber = 42
let isLlamaAwesome = true
```

#### Write a Comment:

Llama only allows for one line comments

```

// This is a comment

let myVar = 42 // This is an inline Comment

```

#### Define a function

```
let square = x -> x * x
```

so that:

```
square 25 // 625 (Number)
```

Functions are obviously First Class Citizens:

```
let redundant = f x -> f (f (f x))
let yell = x -> x + "!"
let hello = "Hello"

redundant yell hello // "Hello!!!"
```

#### Control

To take decisions you can use if then else and recursion to create very complex programs

For instance take this small function to calculate the n Factorial:

```
let fac = n ->
  if n = 0 then
    0
  else
    n * (fac (n-1))
```

*Note: Our Interpreter can only take one line at the time for now.*

#### Mathematical Operations Supported:

```
let a = 1
let b = 2

a + b
a - b
a * b
a / b
a ** b // Stands for a^b
```

#### Compare Data

```
let a = 5
let b = 4

a = b // false (That's right a single one)
a != b // true
```

#### Boolean Logic

```
let a = true
let b = false
a & b // false
a | b // true
```
{'fraction_non_alphanumeric': 0.1259748050389922, 'fraction_numerical': 0.008698260347930415, 'mean_word_length': 3.107142857142857, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 10, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4272818', 'n_tokens_mistral': 1173, 'n_tokens_neox': 1055, 'n_words': 512}