Name: Anonymous 2010-01-10 22:29
printf
hax :: MVar Anus -> IO ()
id
f <- do { let Just (@:) = Nothing; return (@:); }
echo and puts.
substr gets a lot of use from me. pure C string manipulation is something of a mystery
call-with-current-continuation
loeb :: Functor f => f (f a -> a) -> f a
sprintfformat or formatterformat is probably the most superior formatting function I've seen when it comes to features that it's not even funny, but it's more complex, and thus is slower than just sprintf, which is slower than just manually converting your strings. formatter strikes a good balance as it compiles the format string into real code, which means it's usually much faster than printf-likes (imagine what it would be if your printf statement would convert into strdups, itoa's and the like, at compile time, only you could also add conditionals and more complex expressions!).COMPILE and MULTIPLE-VALUE-CALL would be in my list of favorites, but I barely use them directly, even though most things rely on them invisibly.
call-with-* style functions to be extremely useful, but I'd have to give the prize to apply
fmt ( http://synthcode.com/scheme/fmt/ )reset and shift
Eval
(conjure-spirits)
fork()cin
operator>> and operator>>= because, with overloading, I can almost pretend I'm using Haskelllambda is a mobile vagina that outputs anuses
Wishful Thinking
code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code(code())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
goto-like statements/operators almost always translate to a jump in the native language of the platform(such as the machine's assembler or vm's bytecode).
goto will almost always be a statement/special operator in real languages(with the exception of languages which don't have goto at all(except in intermediate compilation phases), or those languages with more "powerful" constructs of control-flow transfer).
Bew.lambda's can be used to emulate goto quite well and efficiently(if a good compiler is used).
goto(but it can't do computed gotos!), you could break down everything into code blocks delimited by the tags and then stuff each of these blocks in a lambda form and append a call(jump) to the next lambda: `(lambda () (let ,@body (,next-lambda)), GO forms could be translated to simple (forced) tail-call to the next lambda form thus interconnecting them all and allowing arbitrary jumping between the forms, just like a real GO operator. This also works right since you can access the lexical (and of course dynamic) bindings available in that function, so it can be done fully transparently. It should work both in Scheme and Common Lisp(as long as you're using a decent implementation capable of TCO). Generally, I wouldn't want to use this in CL as it already has a very capable GO special operator for such low-level tasks(useful in control-flow macros), but there is one thing GO/goto can't do that lambda can, and that's computed GOTO (you can tailcall(jump) to any function you like dynamically)! lambda's in this way to implement call/cc: http://common-lisp.net/project/cl-cont/
preg_replace_callback
force and delay
"GRUNNUR"
erfleytneikvæð