## List comprehensions

| Programming

The Erlang notation `[ F(X) || X <- L]` means "the list of F(X) where X is taken from the list L."

```1> L = [1,2,3,4,5].
[1,2,3,4,5]
2> [2*X || X <- L ].
[2,4,6,8,10]
```

Thus, `[2*X || X <- L ]` means "the list of 2*X where X is taken from the list L."

There's tons of other really really cool stuff you can do. Like `qsort(L)` for quick sorting lists:

```qsort([]) -> [];
qsort([Pivot|T]) ->
qsort([X || X <- T, X < Pivot])
++ [Pivot] ++
qsort([X || X <- T, X >= Pivot]).
```

Or `perms(S)` for generating all possible permutations of a string:

```perms([]) -> [[]];
perms(L)  -> [[H|T] || H <- L, T <- perms(L--[H])].
```

Or `pythag(N)` for generating all Pythagorean triplets (sets of integers `{A,B,C}` where `A2 + B2 = C2`):

```pythag(N) ->
[ {A,B,C} ||
A <- lists:seq(1,N),
B <- lists:seq(1,N),
C <- lists:seq(1,N),
A+B+C =< N,
A*A+B*B =:= C*C
].
```

Ad infinitum into the wee hours of the morning...

### Random entries

Here are some random entries that you might be interested in:

### Information

This personal weblog was started way back on July 21, 2001 which means that it is 7-21-2001 old.

So far this blog contains no less than 2417 entries and as many as 1877 comments.

### Important events

Kiffin Rockwell was shot down and killed 9-23-1916 ago.

Believe it or not but I am 10-11-1957 young.

First met Thea in Balestrand, Norway 6-14-1980 ago.

Began well-balanced and healthy life style 1-8-2013 ago.

My father passed away 10-20-2000 ago.

My mother passed away 3-27-2018 ago.

Started Gishtech 04-25-2016 ago.