fexl
I suppose that implies he's trying to make an anode out of pure lithium or sodium, but you never know with science journalism.
I thought that electrons shuttle from the anode to the cathode.
This is the functional language I use for real work
I guess the "for the Physical Science Basis" report is something different that I haven't found yet.
That said, I am not certain that the recent dramatic spike to 400 ppm of CO2 (from what I've read) could be entirely caused by the fairly moderate temperature rises measured in recent years.
I do say that all humans require energy to survive, and more efficient forms of energy require capital in the hands of innovators.
I'll be happy to read the article if you can give me a link that functions better for me.
There you can see a strong correlation between CO2 levels and temperature going back nearly half a million years. Teasing out cause and effect is the interesting task.
In Lima, the spotters are known as "dateros" (loosely, "data wrangler"). The bus drivers pay them roughly 20 centavos, I think per stop but I'm not certain.
One case where it doesn't work is when certain bus drivers ignore the system and aggressively jump ahead of other buses. Nevertheless, it's pretty smooth.
Symbol resolution in Fexl is now highly simplified and accelerated
Resolved dilemma between two methods of functional evaluation
https://github.com/chkoreff/Fexl/commit/57b841cb6c2347cad147...
That's a non-starter because I find that redefinition is the more common intent:
\x=4
\x=(* x 5)
\x=(+ y x)
In those cases I don't want x defined in terms of itself, but rather in terms of the previous definition of x.That is why I would insist on a special token such as "==" to express the intention of self-reference.
\append==(\x\y x y \h\t [h; append t y])
Maybe I should resurrect that syntax option. :)It was trivial to implement. When the parser sees the "==", it just automatically abstracts the symbol "append" from the definition and applies the fixpoint operator (Y combinator).
The only reason I eliminated "==" in the first place was that I was in the throes of using different syntaxes for lazy, eager, and self-referencing definitions. Now I've settled in on "=" always meaning eager evaluation, without exception. Then I got hyper-minimalist and said that's it, there's only one syntax for definitions, and it's "=", and if you want self-reference, use "@".
However, the decision to settle in on eager evaluation now frees up "==" once again as an option for self-reference. So I may bring that back.
Thanks for the food for thought.
\append=(@\append\x\y x y \h\t [h; append t y])
Where '@' is the Y-combinator.Note that there's no direct self-reference with the symbol "append" there. I could define it equivalently as:
\append=(@\loop\x\y x y \h\t [h; loop t y])Here are a few code samples:
http://rosettacode.org/wiki/99_Bottles_of_Beer#Fexl
http://rosettacode.org/wiki/Fibonacci_sequence#Fexl
This one's a bit more involved:
You'll also find some code samples in the "test" directory:
https://github.com/chkoreff/Fexl/tree/master/src/test
The program a1.fxl there is the definitive test suite. The program a2.fxl reads what you type and echoes it back.
The samples above should help illustrate the nature of the language. Grammatically, it's very simple:
For another quick illustration of the language, I'll give you a sample here:
say "Hello"
\x=(* 4.7 8.6)
put "x = " put x nl
The output is: Hello
x = 40.42This allows for some very nice embedded calls to parsing and evaluation from within a Fexl program itself, which can always be expected to return to the caller instead of halting.
Ultimately I'm going to put a full-powered interpreter right on the web to allow arbitrary programs submitted from strangers, and this release is a necessary prerequisite for that.