Browse files

Readme message

  • Loading branch information...
1 parent bfbb684 commit 57244e85f4db4f9c17ef121cd78ef0f440564c0f Amos Wenger committed Feb 6, 2011
Showing with 10 additions and 0 deletions.
  1. +10 −0
@@ -0,0 +1,10 @@
+Crowbar is a functional rule-oriented ooc spin-off.
+Read the resources below for more information, and bear in mind that any code in there is throw-away, proof-of-concept, let's-get-my-shit-straight code.
+ - (Basic description at the esoteric language wiki)
+ - (Crowbar's own wiki)
+ - (rock is the ooc compiler I'm using to implement crowbar)

4 comments on commit 57244e8


Crowbar is still nice, although I preffered fe2 (the mix of rules and ooc is kinda weird)
I have some questions.
First what happens if we have this code:
Nat: cover from Int { rule this > 0 }
n : Nat = -3
Second, why change the generics symbols from < and > to [ and ], as the brackets are already used for arrays? :/
The way I see it, each set of symbols must be used only for a single purpose (although < and > are used ase comparison operators, there are only used together for the generics)


I'll provide more justification on why using parts of the ooc syntax and why even though it looks a bit less powerful than fe2 it's still a better idea (I have a presentation almost done)

And if you write n: Nat = -3 it'll just make a compile error on this line :)

And for [], well, it's that way in Scala, and indeed < and > are used for comparisons. Also, who said [] was used for arrays? Crowbar doesn't have any built-ins array, and I never said it will have every bit of ooc syntax (thank God!)


Hm, maybe compile errors will not be sufficient as a negative number could be passed to a Nat at runtime (through scanf or even read by a file...), so what would happen at that case?

And okay about the brackets, if there are not used for arrays I see how they could be used for generics operators (although I thought crowbar would be kind of "ooc with rules" ;) since no extended documentation on the syntax is available at this time)


Of course it's of sufficient. When checks can't be made at compile time then runtime checks have to be added - sounds pretty obvious to me :) The thing is, the more information we have, the more checks we can do at compile time and then have a faster, yet still safe program.

Yes there's no documentation on syntax as it's not my #1 priority right now. The syntax can and will still evolve, no one should start writing lots of crowbar code, even the first few implementations won't guarantee anything about syntax stability, it's really not really the point here :)

Please sign in to comment.