←2008-12-08 2008-12-09 2008-12-10→ ↑2008 ↑all
00:48:36 -!- jix has quit ("...").
00:51:32 -!- olsner has quit ("Leaving").
01:37:23 -!- Sgeo has joined.
02:18:51 -!- oerjan has quit ("Good night").
02:59:30 -!- Dewio has joined.
02:59:52 -!- Dewi has quit (Read error: 60 (Operation timed out)).
03:05:29 -!- Dewi has joined.
03:14:03 -!- sebbu2 has joined.
03:14:15 -!- decipher has quit (Read error: 60 (Operation timed out)).
03:17:37 -!- decipher has joined.
03:18:07 -!- Dewio has quit (Read error: 101 (Network is unreachable)).
03:19:09 -!- sebbu has quit (Read error: 60 (Operation timed out)).
03:19:09 -!- sebbu2 has changed nick to sebbu.
04:39:05 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
06:20:38 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
06:37:53 <GregorR> CHEESE IT, THE COPS!
06:40:33 <GregorR> Hahahah, they pulled over a pizza delivery car X-D
07:05:23 <bsmntbombdood> hai gregor
07:38:07 <pikhq> Wow.
07:40:45 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:47 <AnMaster> morning
08:16:20 <oklopol> mor
08:21:41 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
08:22:00 -!- oklopol has joined.
08:28:18 <oklopol> okay, project for c++ course: implement virtual machine for an object oriented scripting language :o
08:28:59 * oklopol likes
08:29:57 <Asztal> will HQ9++ do?
08:35:36 <oklopol> well actually everything is specced exactly
08:36:20 <oklopol> so i'll just make a statically typed language and compile into the vm, in case i feel like being creative
08:57:38 <olsner> oklopol: you can build a JVM in a weekend
08:58:03 <olsner> oh, they gave you a spec for it too
09:06:42 <oklopol> yeah, so it's quite simple
09:07:13 <oklopol> but, still the best project ever
10:30:56 -!- james has quit (Remote closed the connection).
10:35:51 -!- Slereah_ has joined.
10:41:36 -!- Corun has joined.
11:45:40 -!- Corun has quit ("This computer has gone to sleep").
11:51:16 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
11:52:03 -!- Slereah_ has joined.
12:04:27 -!- KingOfKarlsruhe has joined.
12:44:04 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:03:59 -!- zuff has changed nick to ehird.
13:11:27 -!- appletizer has joined.
13:29:26 -!- oerjan has joined.
13:42:32 -!- KingOfKarlsruhe has quit (Remote closed the connection).
13:57:55 <ehird> +/%#
13:57:57 <ehird> valid j code.
13:58:08 <oerjan> also valid line noise.
13:58:49 <ehird> yes.
13:58:52 <ehird> not even perl can beat that.
13:59:16 <oklopol> not even oklotalk can beat that :<
13:59:26 <ehird> oklopol: what about cise
13:59:42 <oerjan> i think it might be a legal perl fragment though, if the / terminates a regex
13:59:55 <oklopol> well. in cise + sums the list, but i'll have to think a bit about the exact syntax of the whole
14:00:24 <ehird> oklopol: +/ is fold + so it's sum
14:00:27 <ehird> % is divide, # length
14:00:29 <ehird> i assume you know that
14:00:32 <oklopol> well. /+# might work.
14:00:34 <oklopol> yeah of course
14:00:49 <oklopol> think i can't read j perfectly after two days of learning?
14:00:55 <ehird> i wish i could
14:00:56 <ehird> :<
14:01:10 <ehird> oklopol: does /+# read from stdin?
14:01:12 <oklopol> it's pretty intuitive.
14:01:21 <oklopol> ehird: no it reads from the input stream
14:01:26 <oklopol> well input register
14:01:27 <ehird> i mean
14:01:29 <ehird> in cise
14:01:29 <oklopol> more like
14:01:34 <oklopol> nope.
14:01:34 <oerjan> intuitive in a hideous, non-euclidean way
14:01:38 <ehird> it does in j
14:01:43 <oklopol> no it doesn't
14:01:53 <ehird> oklopol: yes, it does - it's just that in j, code is entered on the stdin stream too
14:01:57 <ehird> that's how function arguments work in j
14:02:03 <ehird> (+/ % #) 1 2 3
14:02:04 <oklopol> the value of +/%# is just the boxed function.
14:02:11 <ehird> ^ reads 1, 2 and 3 from stdin
14:02:16 <ehird> when it is written to stdin
14:02:33 <ehird> i think that's really nice, it's like forth
14:02:38 <oklopol> didn't know that.
14:02:49 <oklopol> anyway no cise doesn't do that
14:02:53 <oklopol> oklotalk does
14:03:10 <ehird> oklopol: are you going to learn k next?
14:03:13 <ehird> it seems even more concise
14:03:33 <oklopol> ehird: perhaps, the bottlenecks are mostly the same.
14:03:42 <ehird> oklopol: link to where you learned j?
14:03:43 <oklopol> so i could prolly learn it in seccunds.
14:03:47 <oklopol> err.
14:03:52 <oklopol> i dl'd j602
14:03:56 <oklopol> there are these "labs"
14:03:58 <ehird> ok
14:04:04 <ehird> also, I think what's needed to get j even more concise
14:04:07 <ehird> is implicit maps/folds
14:04:13 <ehird> sum is just +
14:04:17 <ehird> that has the nice property of:
14:04:19 <ehird> 1 + 2
14:04:21 <ehird> and
14:04:21 <ehird> + 1 2
14:04:23 <ehird> being the same
14:04:39 <ehird> +%#
14:05:27 <ehird> not sure how you'd get shorter than that?
14:05:33 <oklopol> that only helps in that special case
14:05:37 <ehird> it's reduced to the basic operations: sum divided by length
14:05:43 <oklopol> - 1 2
14:05:43 <oklopol> _1 _2
14:05:55 <ehird> oklopol: what about it
14:06:03 <ehird> - 1 2 would be the same as 1 - 2
14:06:05 <oklopol> implicit fold only makes sense for +, pretty impure to make it an exception
14:06:07 <ehird> - 1 2 3 would be 1 - 2 - 3
14:06:16 <oklopol> ehird: - 1 2 was input
14:06:19 <oklopol> _1 _2 was output
14:06:31 <ehird> oklopol: why is (fold - [1 2]) [-1 -2]?
14:06:38 <oklopol> ...
14:06:47 <oklopol> hmm
14:06:53 <oklopol> right you thought i okay.
14:06:55 <ehird> :P
14:06:55 <oklopol> my point
14:06:59 <oklopol> j already has a meaning for
14:07:01 <oklopol> that
14:07:07 <ehird> i know
14:07:10 <oklopol> + 1 2 ====== (+1), (+2)
14:07:12 <ehird> i'm talking about how you make j even more concise :P
14:07:41 <oklopol> yeah, but i don't think hacks like that are very j'y (they definitely are somewhat j'y, but not *that* j'y), they are very cise'y though
14:07:48 <ehird> well
14:07:55 <ehird> + % # is a beautiful program
14:07:55 <ehird> i mean
14:07:58 <ehird> if we write it out in english:
14:08:04 <ehird> sum divide length
14:08:15 <ehird> it's the three operations that actually make up the definition of averaging
14:08:17 <ehird> and no extra cruft
14:08:25 <ehird> and that's really nice
14:08:53 <oklopol> yeah, but that has a meaning just as intuitive as is, div elems by list length
14:09:04 <ehird> yeah but
14:09:08 <ehird> the / in +/ % # is unneeded
14:09:14 <ehird> +ing a list
14:09:16 <ehird> is obviously summing it
14:09:20 <ehird> that's just what it is
14:09:24 <ehird> adding a list
14:09:35 <ehird> so it can be implicit
14:09:36 <oklopol> sorry, i disagree.
14:09:55 <ehird> oklopol: what other meaning does adding a list have?
14:10:20 <oklopol> I DISAGREE
14:10:24 <ehird> oklopol: well, tell me
14:10:32 <oklopol> don't make me use supercase...
14:10:35 <ehird> because if you can't think of one, i'm pretty sure it's intuitive that adding a list is summing it
14:10:59 <oklopol> well yeah of course fold is more intuitive than map for +, because unary plus is a fucking useless operation.
14:11:28 <ehird> oklopol: for all OP, I'm not sure "OPing a list" makes sense as mapping op over list
14:11:31 <oklopol> but something like having unary + be abs would be much more sensible imo, and keeping the implicit map
14:11:31 -!- Slereah_ has joined.
14:11:33 <ehird> find an OP where it does
14:11:45 <oklopol> ehird: that's really at war with the whole idea of j
14:11:50 <ehird> i know, so what
14:11:52 <ehird> answer me
14:11:52 <ehird> :P
14:11:55 <oklopol> err.
14:12:02 <oklopol> write some j. it's all about mapping
14:12:06 <oklopol> ...
14:12:08 <ehird> i don't care about j
14:12:10 <ehird> goddamn
14:12:10 <oklopol> wait, yeah, i said correctly
14:12:14 <ehird> I'm asking a question
14:12:15 <ehird> answer it
14:12:35 <oklopol> what, - makes sense over a list
14:12:43 <oklopol> as does really any unary operator
14:12:46 <ehird> - 1 2 3
14:12:48 <ehird> makes sense to me as
14:12:50 <ehird> 1 - 2 - 3
14:12:56 <ehird> if you want negation, use _
14:12:58 <ehird> _ 1 2 3
14:12:59 <ehird> =
14:12:59 <oklopol> oh. not to me.
14:13:02 <ehird> _1, _2, _3
14:13:18 <ehird> (monadic funcs are mapped, dyadic ones are folded, is my current thinking)
14:13:21 <oklopol> whatever, i don't agree with any of this.
14:13:28 <ehird> don't you care about tiny prgorams? :P
14:13:45 <oklopol> bleh.
14:13:54 <oklopol> almost all j operators are both unary and binary
14:14:07 <ehird> eh, you can do some contexterizing to find out which you want
14:14:10 <oklopol> and mapping the unaries is usually what you want.
14:14:20 <oklopol> err... k.
14:14:25 <oklopol> that sounds like something cise would do
14:14:27 <ehird> +_ 1 2 3
14:14:29 <oklopol> not very j'y still
14:14:29 <ehird> =>
14:14:30 <ehird> -6
14:14:35 <ehird> oklopol: i don't want something j'y
14:14:39 <ehird> i want something concise and cool :P
14:14:47 <oklopol> I REFUSE TO UNDERSTAND YOUR POINT OF VIEW
14:14:50 <ehird> +_ 1 2 3 -> -6 makes perfect sense imo
14:15:05 * oklopol is in a hurry, and just wants to disagree
14:15:09 <ehird> lolz
14:15:12 <oklopol> not that that makes any sense
14:15:20 <oklopol> :P
14:15:41 <ehird> the only problem is
14:15:42 <ehird> ascii
14:15:43 <ehird> is
14:15:45 <ehird> too
14:15:47 <ehird> small
14:15:49 <ehird> :'(
14:16:02 <oklopol> must leave, yeah, you're right, i like that unary = map, binary = fold thing; assuming you clear up what "contexterizing" is
14:16:04 <oklopol> :)
14:16:06 <oklopol> yeah it is
14:16:10 <ehird> oklopol: well, bye but
14:16:15 <oklopol> WE SHOULD INVENT, LIKE, A SYSTEM WITH MORE CHARS
14:16:15 <ehird> i think functions should have like
14:16:16 <ehird> either
14:16:18 * oklopol goes ---->
14:16:20 <ehird> "mainly unary"
14:16:20 <ehird> or
14:16:22 <ehird> "mainly binary"
14:16:26 <ehird> which flips their map/fold behaviour
14:16:29 <ehird> and you can override it explicitly
14:16:32 <ehird> if you really need to
14:16:36 <oklopol> haha, that's lovely :)
14:16:36 <ehird> bye
14:16:39 <oklopol> buttttt
14:16:42 <oklopol> yeah bye ->
14:17:33 <ehird> like to fold _ would be
14:17:44 <ehird> /_ 1 2 3
14:17:47 <ehird> whatever 1 _ 2 _ 3 does :P
14:18:37 -!- Slereah_ has quit (Read error: 60 (Operation timed out)).
14:19:55 <oklopol> ehird: depends, in j _ isn't really an operator, it's an inherent part of a number, just like the haskell -
14:20:00 <oklopol> not that i'm not gone, i definitely am.
14:20:00 <ehird> oklopol: haha you're back :D
14:20:03 <oklopol> (->)
14:20:03 <ehird> but oklopol
14:20:07 <ehird> poop
14:20:07 <ehird> :P
14:20:26 <ehird> hmm
14:20:30 <ehird> factorial:
14:20:39 <ehird> wellll
14:20:43 <ehird> depends on the range syntax
14:20:49 <ehird> if we say it's a boring func for the sake of example
14:20:57 <ehird> * range 1 <arg>
14:21:24 <ehird> hmm if we say it's .. then
14:21:28 <ehird> n!=*1..n
14:21:30 <ehird> lovely
14:21:57 <oklopol> in cise: *:, where : is range
14:22:16 <ehird> oklopol: hm but
14:22:18 <oklopol> range is 1..n inclusive here, because * doesn't like zeroes :)
14:22:22 <ehird> how does the starting 1 get there
14:22:23 <ehird> annnd
14:22:24 <ehird> what
14:22:31 <ehird> esplain
14:22:33 <ehird> "like"?
14:22:39 <oklopol> cise has the concept of "liking" for functions, they can tell what types they prefer
14:22:39 -!- jix has joined.
14:22:48 <oklopol> and range can be either 0..n-1 or 1..n
14:22:48 <ehird> and other functions try to give them it?
14:22:48 <ehird> XD
14:22:56 <oklopol> :)
14:22:57 <ehird> well : is nice for range
14:22:57 <oklopol> exactly
14:22:59 <ehird> n!=*1:n
14:23:06 <oklopol> cise is a very hard language to parse.
14:23:15 <oklopol> pretty much impossible.
14:23:21 <ehird> then you can use ! as a map factorial ofc:
14:23:28 <oklopol> going --->
14:23:32 <ehird> wait oklopol
14:23:35 <ehird> this will make you lol:
14:23:39 <ehird> +!%#
14:23:48 <ehird> that produces the average of the factorials of the list given
14:23:53 <ehird> with that ! def
14:23:53 <ehird> :D
14:24:14 <ehird> bye
14:26:15 <ehird> that reads as
14:26:22 <ehird> add factorial divide length
14:26:27 <ehird> where add=sum
14:26:28 <ehird> and you know that
14:26:30 <ehird> so you can say
14:26:34 <ehird> sum factorial divide length
14:26:48 <ehird> +_!%#
14:26:55 <ehird> sum negative factorial divide length
14:26:57 <ehird> it's beautiful
14:27:15 -!- appletizer has quit.
14:28:24 <ehird> in haskell, that's
14:28:29 <ehird> (\x -> (sum $ map (0-) $ map fac x) `div` genericLength x)
14:28:42 <ehird> the answer for the list 1 2 3 4 5 is -31 by the way
14:28:58 <ehird> +_!%#.
14:29:00 <ehird> i just love it
14:29:04 <ehird> +_!%# +_!%# +_!%# +_!%#
14:29:12 <ehird> i mean, i can read that now
14:29:14 <ehird> oerjan: can you?
14:29:15 <ehird> it's easy
14:29:17 <ehird> if you know
14:29:18 <ehird> + = add
14:29:21 <ehird> _ = negate
14:29:23 <ehird> ! = factorial
14:29:24 <ehird> % = divide
14:29:26 <ehird> # = length
14:29:33 <ehird> then, you just read out the operations in order!
14:29:37 <ehird> add negative factorial divide length
14:29:42 <ehird> *negate
14:29:44 <ehird> add negate factorial divide length
14:29:53 <ehird> oerjan: ??? :D
14:30:08 <oerjan> I'M NOT LISTENING LA LA LA LA
14:30:35 <ehird> oerjan: it's simple! come to the dark side!! we have tiny programs that you can just read aloud!! :D
14:30:40 <ehird> and they're easy to write!
14:30:45 <ehird> no parens! mostly!
14:30:48 <oerjan> and extremely ambiguous
14:30:58 <ehird> oerjan: that's not all that ambiguous
14:31:15 <ehird> i mean, if you read it out, there's only one "sane, working" meaning it could have
14:31:28 <ehird> and the language will pretty much always take that one.
14:31:30 <oerjan> not ambiguous if you're AI-complete, then
14:31:34 <ehird> +_!%#
14:31:42 <ehird> oerjan: well, it has well-defined precedences ofc
14:31:46 <ehird> it's just that they're set intuitively
14:32:07 <ehird> i.e. just write your program as a flat list of (nested) english names on the argument
14:32:10 <ehird> except you have a character set
14:32:15 <ehird> where one char = one word for a restricted set
14:32:20 <ehird> add negate factorial divide length
14:32:23 <ehird> +_!%#
14:34:12 <ehird> +_!%# it's sooo beautiful
14:34:18 <ehird> i don't think i've ever written a nicer program
14:34:24 <ehird> it's so simple and so YUM
14:35:23 <ehird> i need second opinions. :|
14:35:29 <ehird> lament!
14:35:33 <oerjan> ->
14:35:36 -!- oerjan has quit ("leaving").
14:35:44 <ehird> i scared him away :(
14:41:01 <ehird> +_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#
14:41:17 -!- ehird has set topic: +_!%# | http://tunes.org/~nef/logs/esoteric/.
14:46:05 <ehird> +_!%#!
14:46:10 <ehird> i'm not sure if that's the factorial of the length
14:46:15 <ehird> or that whole expr, factorialled
14:46:18 <ehird> but you know what??
14:46:22 <ehird> WHO CARES
14:46:22 <ehird> :D
14:57:02 <ehird> +_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#+_!%#
14:57:13 -!- ehird has changed nick to zuff.
15:01:32 <MizardX> "%", doesn't that require two arguments? Or does it take the second argument from the supplied arguments? e.g. foo = +_!%#; foo "hello" 3 7 => add(negate(factorial(divide(length("hello"),3))),7)
15:02:05 <zuff> MizardX: well
15:02:09 <zuff> % does take two arguments
15:02:11 <zuff> +_!
15:02:13 <zuff> and #
15:02:22 <zuff> + sums the list it gets, which is _!
15:02:31 <zuff> _ maps _ on it, being an unary function, negating all the elements of
15:02:35 <zuff> ! the factorialled list
15:02:40 <zuff> # just gets the length of the same list
15:02:41 <zuff> so:
15:02:47 <zuff> +_!%# 1 2 3
15:02:48 <zuff> is
15:03:21 <zuff> x = [1,2,3]; fold(add, map(negate, map(factorial, x))) / length(x)
15:04:58 <MizardX> ok. Strange to apply the arguments to both operands...
15:05:20 <zuff> MizardX: they read from the rest of the input string up to \n, basically
15:05:21 <zuff> it's like j
15:06:22 <zuff> basically, if you can show me a shorter way to do +_!%# in any language i'll sell my soul :P
15:07:37 <MizardX> negative mean of the factorials of the arguments
15:08:33 <zuff> MizardX: no
15:08:38 <zuff> the mean of the negation of the factorials of the arguments
15:08:41 <zuff> the negation is _
15:08:43 <zuff> before the !
15:08:49 <zuff> to split it up into logical pieces:
15:08:54 <zuff> + _!
15:08:55 <zuff> %
15:08:56 <zuff> #
15:10:26 <zuff> mean should probably be a function
15:10:34 <zuff> like...uh...
15:10:37 <zuff> $
15:10:44 <zuff> then it becomes
15:10:45 <zuff> $_!
15:11:02 <zuff> $=+%#
15:11:04 <zuff> then
15:11:06 <zuff> $_! 1 2 3
15:11:08 <zuff> -> -31
15:11:38 <MizardX> the mean of the negation is the negation of the mean
15:11:48 <zuff> MizardX: shush you
15:11:52 <zuff> this matters in the universe of awesome
15:12:05 <zuff> it matters in a spiritual satisfaction way!
15:12:12 <zuff> but yes, _$! would work just as well
15:12:17 <zuff> but $_! is probably valid perl
15:16:14 <zuff> hmm
15:16:22 <zuff> I wonder what you should call $_!
15:16:23 <zuff> i guess
15:16:29 <zuff> meannegfacs
15:16:30 <zuff> :P
15:16:38 <zuff> to be honest, why even make that a function
15:16:43 <zuff> it's quicker to just use it than give it a name
16:13:07 <zuff> http://uk.youtube.com/watch?v=rBurACl5wW0
16:15:17 <jayCampbell> FNORD
16:29:29 <zuff> i can still write +_!%# without thinking
16:29:41 <zuff> it's just so -obvious- if you know what the symbols mean. well, obviously
16:31:05 <zuff> [[Why do you want to learn C when there's C++?!... C++ stands for a increasement of C... ]]
16:31:09 -!- zuff has set topic: Why do you want to learn C when there's C++?!... C++ stands for a increasement of C....
16:40:44 -!- KingOfKarlsruhe has joined.
16:41:44 <jayCampbell> http://uk.youtube.com/watch?v=mcAq9bmCeR0
16:42:28 <zuff> jayCampbell: through intense tracking of your youtube links, i have discovered you reside in UNITED KINGDOMIA//
16:42:35 <zuff> THIS WILL BE YOUR LAST TRESSPASS-FALL
16:42:39 <zuff> my death ray is on its way.
16:43:21 <jayCampbell> no, ever since i went to your link all my youtube links send me to UK
16:43:31 <zuff> jayCampbell: that was the previous part of my trap
16:43:37 <zuff> clicking on that link TRANSPORTED YOU TO THE UK
16:43:39 <zuff> you just don't know it yet
16:43:41 <jayCampbell> shit
16:44:12 <zuff> Ahahahahhaahahahah!
16:46:02 <zuff> +_!%#
16:46:02 <zuff> hee
16:46:06 <zuff> i can still write it without thinking
16:46:57 <zuff> jayCampbell: +_!%#
16:47:43 <jayCampbell> segfault
16:48:06 <zuff> jayCampbell: tell me what that program does and i'll not send the death rays
16:49:33 <zuff> jayCampbell: you have 50 hours
16:49:53 -!- Sgeo has joined.
16:50:04 <zuff> Sgeo: what does +_!%# do
16:50:07 <zuff> answer and win prizes
16:50:30 <Sgeo> I'm assuming you're talking about an esolang. What esolang?
16:50:45 <zuff> it is not actually specced anywhere
16:50:45 <zuff> <3
16:50:48 <zuff> SO TELL ME
16:51:11 <jayCampbell> it does fold(add, map(negate, map(factorial, x))) / length(x)
16:51:13 <jayCampbell> I'M SAVED
16:51:32 <jayCampbell> do you want it implemented?
16:51:34 <zuff> jayCampbell: copy and paster >:(
16:51:43 <zuff> and no, dammit, it's mostly oklopol's
16:51:58 <jayCampbell> i've been looking for an excuse
16:52:23 <zuff> jayCampbell: anyway now you get to answer another, harder one
16:52:26 <zuff> for cheating
16:52:26 <zuff> :D
16:56:47 <jayCampbell> spec me a language
16:56:51 <zuff> no dammit
16:57:00 <zuff> make your own stupid languages to implement >:(
16:57:01 <zuff> :P
16:57:41 <jayCampbell> i'm torn between Three Stooges and Genesis, where the programmer first creates the heavens and the urfs
16:58:06 <jayCampbell> will probably do PokerScript
16:58:13 <zuff> got any unique ideas? :P
16:58:24 <jayCampbell> apparently not
16:58:29 <zuff> +_!%# is very uniq
16:58:40 <jayCampbell> not rilly
16:58:44 <zuff> ya tis.
16:58:46 <zuff> just ask oklopol.
17:00:24 <jayCampbell> it's a reversed rpn with a couple extra functions
17:00:33 <zuff> umm
17:00:34 <zuff> no
17:00:35 <zuff> it's not
17:00:40 <zuff> it is not reversed rpn
17:00:40 <zuff> at al
17:00:41 <zuff> l
17:00:50 <zuff> it just isn't
17:01:12 <jayCampbell> in that, operations are invoked on a stack
17:01:18 <zuff> nope
17:01:20 <zuff> they are not
17:01:42 <jayCampbell> in that, it's a stackish thing and not supplied arguments
17:01:51 <zuff> no
17:01:52 <zuff> it is n't
17:01:57 <zuff> you can say it is all you want but it isn't
17:02:00 <jayCampbell> ok then i stopped caring
17:02:18 <zuff> heh.
17:44:46 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:52:51 <oklopol> :D
17:53:20 <oklopol> jayCampbell: of all people you should care about it, i mean you're "jay".
17:53:35 <zuff> oklopol: totally
17:53:41 <zuff> +_!%#
17:53:43 <zuff> isn't that just beautiful?
17:53:44 <zuff> seriously.
17:53:53 <zuff> best program ever.
17:56:09 <oklopol> 17:07… MizardX: negative mean of the factorials of the arguments === 17:08… zuff: the mean of the negation of the factorials of the arguments
17:56:17 <zuff> yes
17:56:19 <zuff> i know
17:56:19 <zuff> :P
17:56:23 <zuff> but really
17:56:36 <zuff> you don't have to know -anything- beyond what each individual symbol represents to grasp the program
17:56:36 <oklopol> which it seems MizardX already said, i should really read further before commenting
17:56:40 <zuff> no extra syntax, structure, or whatever
17:56:52 <zuff> +_!%# where + = add, _ = negate, ! = factorial, % = divide, # = length
17:57:01 <zuff> add negate factorial divide length
17:57:06 <zuff> i mean, if you get that they're operating on a list, that's just trivial
17:58:28 <oklopol> oh you
17:58:36 <oklopol> now, could you explain why that works, i have no idea
17:58:40 <oklopol> :9
17:58:57 <zuff> oklopol: well
17:59:15 <zuff> mean of the negation of the factorials of the arguments
17:59:23 <zuff> oklopol: you already know that +%# is mean
17:59:29 <zuff> because it's add divide length, and add on lists is sum
17:59:35 <oklopol> actually wait...
17:59:36 <zuff> so let's say mean is $
17:59:40 <zuff> then it's just $_!
17:59:44 <zuff> _ is negate, it's mainly-unary
17:59:46 <zuff> so it's mapped
17:59:51 <zuff> ! is factorial, same, so it's mapped
18:00:06 <zuff> so we map factorial the list, map negate it, then mean it
18:00:10 <zuff> and mean is +%#
18:00:18 <zuff> we're summing the negated-factorials, so we put it in the + clause
18:00:20 <zuff> +_!%#
18:00:24 <zuff> add negate factorial divide length
18:01:43 <zuff> oklopol: geddit?
18:01:44 <oklopol> : for dyadic, . for monadic; :+ .- :! :% :# -> :+( .- :! %: :#) because a dyadic folds without a left arg, then :+( .- ( :! %: :# ) ) because [obviousity], then the standard rule for "fun fun fun" -> :+( .- ( :!( arg ) %: :#( arg ) ) )
18:01:47 <oklopol> err
18:01:50 <oklopol> i didn't read, sorry :P
18:01:54 <zuff> lolz
18:01:59 <oklopol> "wait..." <<<
18:02:02 <zuff> yeah ! there is factorial
18:02:06 <zuff> so monadic
18:02:13 <oklopol> hmm.
18:02:18 <oklopol> well actually .#
18:02:19 <zuff> and # is length
18:02:19 <oklopol> ofc
18:02:19 <zuff> so monadic
18:02:21 <zuff> :+ ._ :! :% .#
18:02:24 <oklopol> yes
18:02:27 <zuff> so yeah, it's:
18:02:34 <zuff> (+(_(!)))%(#)
18:02:42 <oklopol> but anyway Xfun :fun Xfun
18:02:42 <zuff> +_!%#. some pretty neat code.
18:03:00 <oklopol> oh, okay, monadic's have a short scope
18:03:36 <zuff> yeah
18:03:55 <oklopol> anyway yeah sure that's workable. not that i'm entirely sure the general case is in any way remarkably short
18:04:00 <zuff> oklopol: and a prefixed-dyadic has scope up to a binary-dyadic
18:04:04 <zuff> thus why it stops at the %
18:04:18 <oklopol> so that's mean of negated factorials of arg
18:04:21 <zuff> yah
18:04:24 <oklopol> let's write it in j
18:04:27 <zuff> oklopol: of course, mean is a really common operation
18:04:30 <oklopol> i mean, i do
18:04:32 <zuff> so that should be bound to something
18:04:33 <zuff> like ~
18:04:38 <zuff> ~=+%#
18:04:40 <zuff> then it's
18:04:41 <zuff> ~_!
18:08:51 <oklopol> hmm what was ~ in j again... right, +~4 = 4+4
18:09:04 <zuff> heh
18:09:08 <zuff> well I was just thinking
18:09:12 <zuff> mean is like ~ because
18:09:18 <zuff> if a list is a wavy line of varying values
18:09:22 <zuff> mean straightens it out
18:09:23 <zuff> into one
18:10:49 <oklopol> yeah that's clear
18:11:09 <zuff> oklopol: so what's +_!%# in j :P
18:11:38 <oklopol> seems i've misunderstood the @ adverb :|
18:11:54 <oklopol> i mean i haven't actually seen it explained anywhere, i've guessed most of the semantics from examples
18:12:29 <oklopol> i mean, usually @ looks like function composition, but not in the case when the left argument is +/.
18:13:16 <oklopol> probably has to do with the fact ! is a->a and +/ is [a]->a
18:22:37 <oklopol> so
18:22:50 <oklopol> help says
18:22:56 <oklopol> u@v y == u v y
18:23:09 <oklopol> j says
18:23:10 <oklopol> >>> mean ! 1 2 3
18:23:10 <oklopol> 3
18:23:10 <oklopol> >>> (mean@!) 1 2 3
18:23:10 <oklopol> 1 2 6
18:23:19 <zuff> oklopol: you miss the minus
18:23:26 <zuff> and the sum
18:23:28 <oklopol> ...that's hardly the point
18:23:31 <zuff> oh, wait, you have the sum
18:23:33 <zuff> but the minus is so the point
18:23:39 <zuff> add the negative in there.
18:23:47 <oklopol> err...
18:23:53 <oklopol> look at what i said.
18:24:04 <zuff> oklopol: i see no negation.
18:24:07 <zuff> the result is -31
18:24:11 <oklopol> 8|
18:24:13 <zuff> +_!%# 1 2 3
18:24:15 <zuff> -> -31
18:24:20 <oklopol> so, does someone know J here?
18:24:29 <zuff> well I guess it's just _
18:24:29 <zuff> like
18:24:31 <zuff> _ mean !
18:24:33 <oklopol> there must be some reason for this weirdness
18:24:42 <zuff> o rite
18:24:43 <zuff> i see
18:24:48 <oklopol> :)
18:24:50 <zuff> kk i thought that was your solution
18:24:54 <oklopol> err no
18:25:00 <zuff> because if it was ~_! is still shorter in tokens and chars, ofc :P
18:25:04 <oklopol> quite the opposite, that's my problem
18:25:13 <zuff> :P
18:25:27 <zuff> the nice thing is the interchangability when you have equivalent ops
18:25:31 <zuff> _~! and ~_!
18:25:33 <oklopol> but, i remember someone here knew J
18:25:34 <zuff> you can just swap the chars around
18:25:39 <zuff> oklopol: don't recall :{
18:25:41 <oklopol> and i don't remember who that was :<
18:25:46 <oklopol> asd.
18:26:39 <oklopol> it was one of the more silent dudes, and i think their nick started with "j", but i might just be confused for obvious reasons
18:27:18 <zuff> wait wait [1,2,3,4] is -31
18:27:18 <zuff> dur
18:27:24 <zuff> oklopol: don't recall
18:27:26 <oklopol> there's no #j. shocking
18:27:26 <zuff> want me to grep, maybe?
18:27:34 <oklopol> well yeah sure that'd be nice
18:29:03 <zuff> oklopol: what should i grep for :P
18:29:11 <oklopol> have no idea...
18:29:17 <oklopol> well just " j "?
18:29:22 <oklopol> does that give a million lines?
18:31:27 <zuff> i'll try
18:31:27 <zuff> but prolly
18:32:04 <zuff> oklopol: first mention in 2003! :O
18:32:05 <zuff> 03.04.19:17:43:40 <gilbertdeb> Taaus: what did you use j for?
18:32:29 <oklopol> cool
18:32:36 <zuff> can't find any j person
18:32:36 <zuff> :{
18:32:36 <oklopol> it wasn't gilbert :)
18:32:39 <zuff> I'll serach for J
18:32:43 <zuff> uppercase
18:33:09 <oklopol> hmm. let's hope the j guy likes uppers then.
18:33:17 <zuff> 07.01.29:14:36:43 <SevenInchBread> j sucks too...
18:33:18 <oklopol> i up pretty rarely
18:33:21 <zuff> that's cakeprophet
18:33:24 <zuff> how can you like him
18:33:28 <oklopol> :=)
18:33:39 <oklopol> well he's always like that
18:34:52 <oklopol> heh, checked whether quakenet has #j, mostly for luls, and it did!
18:34:58 <oklopol> unfortunately it's a gaming channel
18:35:02 <oklopol> didn't stop me from asking though.
18:35:24 <zuff> 08.03.21:12:07:37 <oklopol> i love j already
18:35:24 <zuff> 08.03.21:14:44:56 <okofolor> rofl, switching back to linux is starting to feel like a good idea, my j interp crashed, took me like 5 minutes to get my computer running again :D
18:35:27 <zuff> dejavu
18:35:30 <oklopol> after explaining the problem, like 15 lines, 20:33… @morfff: rofl what
18:35:42 <oklopol> :-)
18:35:42 <zuff> oklopol: hahaha, pastebin a log
18:36:23 <oklopol> http://www.vjn.fi/pb/p562653264.txt not that interesting
18:36:41 <zuff> oklopol:
18:36:41 <zuff> 07.03.23:09:36:24 <oklopol> J sucked ass ^^^^^^
18:36:56 <oklopol> when's that? :d
18:36:58 <oklopol> err
18:36:58 <zuff> oklopol: did nobody else talk since? :{
18:36:59 <zuff> and
18:37:00 <oklopol> 07
18:37:00 <zuff> err
18:37:02 <zuff> lo
18:37:04 <zuff> l
18:37:07 <oklopol> zuff: no :<
18:37:44 <oklopol> i didn't get to the good parts of j last time i tried
18:37:54 <zuff> oklopol: faxathisia maybe? :\
18:37:59 <zuff> he seemed to know j
18:38:02 <oklopol> hmm
18:38:05 <oklopol> very possible.
18:38:12 <zuff> he never comes here
18:38:48 <zuff> 08.03.21:12:55:33 * oklopol makes that his first J project!
18:38:48 <zuff> 08.03.21:13:44:03 <oklopol> http://jsoftware.com/help/dictionary/dccapdot.htm okay J owns.
18:39:08 <oklopol> well it does!
18:41:28 <oklopol> http://www.vjn.fi/pb/p345244344.txt <<< continuation, dunno if that's as funny to you as it is to me, i'm very tired and headachy
18:41:49 <zuff> lollllll
18:41:52 <zuff> this is epic
18:41:59 <oklopol> :D
18:42:12 <oklopol> i just wish they'd actually try to help
18:42:29 <oklopol> i mean, i would, in that situation
18:42:34 <oklopol> no matter what the question is
18:43:02 <zuff> oklopol: any more chatxs?
18:43:30 <oklopol> well yeah sure
18:43:39 <zuff> oklopol: paste
18:43:49 <oklopol> http://www.vjn.fi/pb/p235534144.txt
18:43:51 <zuff> oklopol: its quakenet right
18:44:00 <zuff> ?
18:44:02 <oklopol> yes, naturally
18:44:13 <oklopol> well i guess it could be some other non-freenode
18:44:34 <zuff> i'm joining
18:44:37 <zuff> and going to ask a j question
18:44:37 <zuff> :DDD
18:44:41 <Asztal> heh
18:45:22 <zuff> lollllll
18:45:32 <zuff> oklopol: antyhing i missed since that paste
18:45:33 <zuff> before i joined
18:45:34 <zuff> ?
18:45:59 <oklopol> wait...
18:46:01 <zuff> oklopol: paste
18:46:07 <zuff> paste what happened between your last one and my join
18:46:07 <zuff> :D
18:46:18 <oklopol> http://www.vjn.fi/pb/p551156355.txt
18:46:31 <zuff> lol
18:46:34 <zuff> let's keep acting oblivious
18:46:46 <zuff> um
18:46:46 <zuff> 18:45 <Quakenet> Error(404): #J Cannot send to channel
18:46:49 <zuff> do i need to identify?
18:46:52 <zuff> or sth
18:46:57 <oklopol> err.
18:47:02 <oklopol> well yeah maybe they have that mode on
18:47:11 <oklopol> yup
18:47:28 <oklopol> identifying is instantaneous, but tedious.
18:47:33 * zuff dossi
18:47:33 <zuff> t
18:47:35 <oklopol> i mean, you have to do email stuff
18:47:38 <zuff> yeah
18:47:39 <zuff> :|
18:49:26 <zuff> oklopol: did that work?
18:49:44 <oklopol> yes
18:49:46 <zuff> oklopol: yay
18:49:55 <zuff> i suggest we just keep piling j qs in there
18:50:00 <zuff> until the tf people go away
18:50:02 <Asztal> it's a shame I know nothing about J really
18:50:08 <oklopol> until they kickban us is more like it
18:50:12 <Asztal> not that they'd know the difference
18:50:26 <oklopol> i'm surprised they're that friendly, quakenetters tend to be all about the business ( == gaming )
18:50:39 <Asztal> also, rage at Error(404)! It should be 403!
18:50:43 <Asztal> or 401
18:50:48 <zuff> oklopol: nah, we just have to make it tangentially related to tf
18:50:49 <zuff> every now and then
18:50:54 <zuff> like, we'll say we're scripting it
18:50:55 <zuff> or sth
18:51:25 <oklopol> :)
18:52:20 -!- sebbu2 has joined.
18:52:45 <zuff> "Until death do us apart" - #j website
18:55:57 <zuff> http://www.jagarna.org/index.php?site=squads&action=show&squadID=2
18:56:00 <zuff> here's who we're dealing with
18:57:34 <zuff> 18:57 zuff: yeah, mostly a lot of gamers
18:57:35 <zuff> see wut i did thar
19:00:35 -!- sebbu3 has joined.
19:01:39 <zuff> HUR HUR HUR
19:01:51 -!- kar8nga has joined.
19:01:54 <zuff> i bet they have us all on ignore now
19:02:27 <zuff> oklopol: don't give it away
19:02:28 <zuff> >:(
19:03:19 -!- sebbu2 has quit (kornbluth.freenode.net irc.freenode.net).
19:03:20 -!- pikhq has quit (kornbluth.freenode.net irc.freenode.net).
19:03:21 -!- rodgort has quit (kornbluth.freenode.net irc.freenode.net).
19:04:00 <Asztal> hahaha
19:04:04 <zuff> 19:03 lezek has changed mode: +m
19:04:04 <zuff> 19:03 lezek: I suggest you guys go to #j.ai and talk :d
19:04:04 <zuff> fuckers
19:04:07 <zuff> privmsg time
19:04:07 -!- pikhq has joined.
19:04:09 <zuff> 19:04 zuff: hey, what was that for?
19:04:18 <Asztal> I bet it's the only action their channel's seen in weeks, too :(
19:04:30 <zuff> 19:04 lezek: Join j.ai
19:04:30 <zuff> 19:04 lezek: and talk
19:04:32 <zuff> 19:04 zuff: nobody there
19:04:32 -!- sebbu2 has joined.
19:04:32 -!- rodgort has joined.
19:04:45 <zuff> 19:04 lezek: J is not a channel for AI or Mathematic talk :)
19:04:45 <zuff> 19:04 zuff: it was neither
19:04:49 <zuff> AI OR MATHEMATIC
19:05:09 <oklopol> :D
19:05:13 <oklopol> what a meganoober :P
19:05:19 <zuff> 19:04 lezek: J is a channel for TF2 talk
19:05:19 <zuff> 19:05 zuff: right, j is a part of tf2 <--
19:05:22 <zuff> bullshit mode activate
19:06:01 <oklopol> hmm.
19:06:12 <Asztal> :D
19:06:14 <zuff> i will get that -m
19:06:16 <zuff> if it's the last thing i do
19:06:30 <oklopol> would you mind giving me the log? i'll give a few more ppl a slight lol.
19:06:43 <zuff> yeah yeah once it's over
19:06:50 <oklopol> of course it's split in tons pieces.
19:07:23 <oklopol> mirc is such a piece of caviar, i can't copy more than one screenful at once from the logs
19:07:34 <oklopol> because they only scroll when you push the arrows
19:07:45 <zuff> lol
19:07:49 <oklopol> even in the fucking logviewer, in which you can't do anything *but* read the logs
19:07:50 <oklopol> :DD
19:07:52 <Asztal> nnscript makes readable log files by default, I think.
19:08:01 -!- sebbu has quit (Connection timed out).
19:08:02 -!- sebbu3 has changed nick to sebbu.
19:08:19 <oklopol> yeah sure. but i would have to locate them, and if you knew me, you'd realize what a massive prob that is.
19:09:15 -!- sebbu2 has quit (kornbluth.freenode.net irc.freenode.net).
19:09:16 -!- rodgort has quit (kornbluth.freenode.net irc.freenode.net).
19:09:18 <zuff> oklopol: done
19:09:19 <zuff> paste time
19:09:28 <zuff> http://www.vjn.fi/pb/p225562425.txt
19:10:00 <zuff> he replied "LOL". insensitive clod.
19:11:05 <oklopol> :)
19:11:08 -!- sebbu2 has joined.
19:11:08 -!- rodgort has joined.
19:14:32 <oklopol> channels are much more elitist in qnet
19:14:41 <oklopol> it's an entirely different world
19:14:57 <zuff> i loved the "and we like it that way"
19:15:09 <zuff> hurf durf clogging the channel namespace with something that's never talked in is elite hurf durf
19:15:18 -!- rodgort has quit (Remote closed the connection).
19:15:19 <zuff> look at me with my huge epenis and op status
19:15:22 -!- rodgort has joined.
19:15:49 <jayCampbell> is jaxer as cool as it looks?
19:16:01 <zuff> not that cool.
19:16:05 <zuff> it's alright.
19:16:14 <oklopol> what's jaxer
19:16:27 <zuff> oklopol: boring web stuff. :P
19:16:57 <jayCampbell> also all this j scrollback is confusing
19:16:59 <oklopol> ah, first link's *sublink* would've done it
19:17:08 <oklopol> i didn't feel like reading that far
19:17:10 <jayCampbell> <- j
19:17:20 <zuff> jayCampbell: your fault for hogging the lang's name
19:17:25 <zuff> yes, languages come before people
19:17:46 -!- sebbu2 has quit (Connection timed out).
19:18:07 <oklopol> now, while #j did explain why the problem occurred, it didn't actually get solved
19:18:19 <zuff> oklopol: well, just don't use @?
19:18:19 <zuff> :P
19:18:22 <zuff> also
19:18:25 <zuff> idea for my j-like language:
19:18:28 <zuff> no parens
19:18:29 <zuff> at all
19:18:31 <oklopol> zuff: and use what instead?
19:18:33 <zuff> ( and ) are some random ops
19:18:37 <zuff> if you need parens, you suck
19:18:38 <zuff> restructure
19:18:57 <zuff> if +_!%# doesn't need parens, nothing does
19:20:39 <zuff> oklopol: ideally, ( and ) are actually used together
19:20:40 <zuff> but not always
19:20:49 <zuff> i.e. most of the time, it looks like a language construct
19:20:53 <zuff> but then you get ROUGE PARENS
19:26:20 <zuff> oklopol: hmm i liked how you annotated monadic/dyadic with . and :
19:26:24 <zuff> that should be how you force map/fold XD
19:27:03 <oklopol> that was the debug output syntax of arities in oklotalk--
19:27:22 <zuff> :D
19:40:20 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
19:53:02 <zuff> oklopol:
19:53:03 <zuff> x+y
19:53:06 <zuff> is E
19:53:50 -!- olsner has quit ("Leaving").
19:54:29 -!- Ilari has joined.
19:56:28 -!- Corun has joined.
20:16:25 <zuff> oklopol: did the j peeps say anything more
20:18:08 <zuff> Corun: be broadband are in your area? jealouss :{
20:23:23 -!- sebbu2 has joined.
20:37:59 -!- sebbu has quit (No route to host).
20:40:16 <oklopol> zuff: x+y = E?
20:40:22 <zuff> oklopol: totally
20:40:33 <oklopol> i see.
20:42:54 <Corun> zuff, I'm with O2
20:43:04 <zuff> (n=Corun@94-193-40-216.zone7.bethere.co.uk)
20:43:06 <Corun> Yeah
20:43:08 <zuff> o2 bought out be
20:43:08 <Corun> I dunno
20:43:10 <Corun> I'm with O2.
20:43:11 <zuff> so i guess a branding thing
20:43:19 <Corun> Ah, didn't know that.
20:43:43 <Corun> But, I have an iPhone on O2. It's much cheaper for O2 customers
20:43:53 <zuff> Yeah, ditto.
20:43:56 <Corun> (unlimited download 8 meg for £7.50 a month iirc)
20:43:59 <Corun> Ah, cool.
20:44:10 <zuff> Except, not broadband with them.
20:44:18 <Corun> Ah
20:44:19 <zuff> Well, I guess "iphone on o2" then becomes obvious.
20:44:25 <zuff> Unless I unlocked it.
20:44:33 <Corun> :-)
20:59:28 <zuff> omg oklopol
20:59:32 <zuff> infinite genetic algorithms
20:59:32 <zuff> that is
20:59:37 <zuff> it doesn't just evolve its own fitness function
20:59:44 <zuff> it evolves every part of its own evolving to an infinite level
21:20:07 -!- olsner has joined.
21:23:04 -!- kar8nga has joined.
21:30:44 <Warrigal> So self-modifying AI that uses evolution.
21:30:53 <zuff> YES.
21:37:14 <oklopol> zuff: yes, life.
21:37:19 <zuff> <.<
21:37:22 <oklopol> that was what i meant
21:40:12 -!- oerjan has joined.
21:53:22 -!- olsner has quit ("Leaving").
22:13:40 -!- kar8nga has left (?).
22:48:01 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
22:50:49 -!- oklopol has joined.
23:06:06 <zuff> oklopol:
23:06:13 <zuff> +_!%#
23:06:14 <zuff> :DDDDDDDD
23:07:11 <oklopol> :DDDD
23:07:13 <oerjan> &/-#+!|::\
23:07:24 <zuff> oerjan: that is probably valid code but i don't know what it would do.
23:07:32 <zuff> oklopol: did you manage to concisify +_!%# in j?
23:07:37 <zuff> hmm, what would it be in cise?
23:07:57 <zuff> i'm not sure cise can beat +_!%# for "mean of the negation of the factorials of the arguments"
23:08:00 <zuff> well
23:08:06 <zuff> if it has its own mean function, and you use that
23:08:09 <zuff> then you have to bet ~_!
23:08:11 <zuff> *beat
23:08:14 <zuff> as ~ is the mean
23:08:22 <zuff> take your pick :P
23:08:51 <oklopol> ooooooooooooooooooooooo
23:08:57 <oerjan> every language needs a mean function
23:08:58 <oklopol> zuff: no i didn't look into it really
23:09:06 <oerjan> and a kind one
23:09:08 <zuff> oklopol: cise i mean
23:09:08 <zuff> cise
23:09:14 <oklopol> ohh.
23:09:33 <oklopol> well i haven't completely decided on all ascii chars' meanings.
23:09:40 <zuff> oklopol: well that's not that important
23:09:43 <zuff> just assign random ones
23:13:11 <zuff> oklopol:
23:14:06 <zuff> .
23:21:03 -!- GreaseMonkey has joined.
23:23:32 -!- olsner has joined.
23:33:14 <zuff> http://www.reddit.com/r/programming/comments/7i6o9/im_looking_for_a_backup_format_for_my_database_of/
23:33:16 <zuff> Oh lawd
23:46:58 <lament> ehird!
23:47:46 <zuff> hi lament
←2008-12-08 2008-12-09 2008-12-10→ ↑2008 ↑all