Skip to content

Instantly share code, notes, and snippets.

@diiq
Created July 17, 2011 17:26
Show Gist options
  • Save diiq/1087830 to your computer and use it in GitHub Desktop.
Save diiq/1087830 to your computer and use it in GitHub Desktop.
Test for psybas conversation

Verifying my understanding of psychotic bastard:

set x: fn (b) : cons : 't (cons 'b ())

is a valid way to say

(set x (fn (b) (cons (' t) (cons (' b) ()))))

Correct?

Currently true code samples?
-----
set x: fn (b): cons 't (cons 'b ()) ===> (set x (fn (b) (cons (' t) (cons (' b) ()))))
set x: fn (b): cons 't: cons 'b () ===> (set x (fn (b) (cons (' t) (cons (' b) ()))))
-----
set def:
'('name ... 'code
leak: really name
set (really name) code)
and
set def:
'(('name ... 'code):
leak: really name
set (really name) code)
(set def
(' (((' name) ... (' code))
(leak (really name))
(set (really name) code))))
[MAYBE this, too:
set def:
'('name ... 'code
leak: really name
set (really name) code)]
-----
@diiq
Copy link
Author

diiq commented Jul 28, 2011

Easy answers first:

I came around on the arg-list-parens for a single argument; I still think you're crazy for wanting \x y z: x + y + z.

Re (e: f): Yes, there are places where the colon is unnecessary. I've found it useful in test cases to have those --- sometimes for readability and sometimes to try and fool the parser.

Re: aside: I dunno --- I was born at the right time, and always had flashy whatsits (though I hear they have pills for that now). To your credit, I had to write some s-expressions to explain something on G+, and it just about made me throw the keyboard ('cept it was a laptop). Psychotic Bastard is bizarre (and seems more so the more I try and explain it to myself) but it's pleasant to write.

(Oh god, I just realized I've been ignoring infix precedence. Poop. I thought I had this worked out right finally.)

You're going to give : a precedence between operators??? It's not an operator! It's a delimiter! I... ugh... arrgh. We gon' have words, friend.

@diiq
Copy link
Author

diiq commented Aug 2, 2011

Every possible method for doing if/else is completely and utterly wrong and I despise each of them, individually, for the hateful snowflakes they truly are.

@AdamHeck
Copy link

AdamHeck commented Aug 3, 2011

I had a code sketch for if/else that was a pretty naive 4 lines long. I put in a working but hideous version tonight via def-keyword. It weighed in at around 50 lines, two of which were

                             ; OMG HACKS

and

                             ; END OMG

I'm taking this as a sign that I haven't got def-keyword right yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment