00:05:41 -!- olsner has quit ("Leaving").
00:17:07 -!- Slereah has joined.
00:23:58 <Slereah> Can a function name in Scheme be anything?
00:33:38 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:34:44 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
00:40:31 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:41:21 -!- Slereah has joined.
00:41:37 <Slereah> So, can you name Scheme functions to anything?
00:42:16 <tusho> you can name them valid symbol names
00:42:18 <tusho> which are .. pretty lenient
00:42:29 <tusho> +--++++++*%%3434 is a valid symbol, for instance
00:42:36 <Slereah> Even with already defined functions?
00:42:47 <tusho> Slereah: 34 is not a valid symbol, no.
00:42:55 <tusho> And yes, already defined functions, it just overrides them.
00:43:06 <tusho> 34a is not a valid symbol either (starts with a number) but a lot of implementations accept it
00:43:20 <Slereah> I was hoping of doing a small library of numbers for conveniance purpose.
00:43:42 <tusho> Slereah: Well ... You could use '4'
00:43:54 <tusho> but I assume SICP is maeking you do the church?
00:44:07 <tusho> (N 4) -> (S (S (S (S N0))))
00:44:20 <tusho> Slereah: how about:
00:44:38 <Slereah> I was hoping of doing a pretty much straightforward translation for the function definition part
00:44:44 <tusho> (define (N n) (if (zero? n) N0 (S (N (- 1 n)))))
00:44:53 <tusho> Slereah: with S=succ and N0=duh
00:45:07 <Slereah> I guess i could just check if something starts with a number and add some symbol to make it acceptable.
00:45:25 <tusho> I dunno what you're doing but it sounds bad
00:45:41 <tusho> Have you read SICP, Slereah?
00:45:48 <tusho> I suggest reading it all the way through. It has tons of interpreters and compilers.
00:45:54 <tusho> They will help you a lot.
00:46:05 <Slereah> Well, problem is, it dwells a lot on stuff i already know.
00:46:18 <tusho> Slereah: Well, fine. But it pays to read through.
00:46:21 <tusho> It has lots of helpful scheme things
00:46:32 <Slereah> Well, I don't need that much scheme.
00:46:39 <Slereah> Just enough for mah esolang.
00:46:52 <Slereah> Although I'm not sure how much the pi part would require.
00:47:02 <Slereah> I still have no idea how to exactly implement it
00:47:11 <tusho> Slereah: Read through SICP. Srsly.
00:47:45 <Slereah> I dunno. I usually prefer to poke around a language and read up when something doesn't feel right.
00:49:14 <Slereah> Fuck is my internet shitty nowadays.
00:50:54 <tusho> Slereah: yah, well, that's exactly what'll get you writing shitty scheme
00:51:58 <Slereah> Would I really need that much for an esolang?
00:52:21 <Slereah> I mean, the Lazy K interpreter is less than ten lines long.
00:53:14 -!- uvanta has quit ("P").
00:53:56 <tusho> Slereah: Maybe not but you'll be much happier if you write nicer code.
00:54:02 <tusho> Scheme is quite a paradigm shift.
00:54:08 <tusho> Slereah: What scheme are you using?
00:54:14 <tusho> I suggest PLT Scheme most heartily.
00:54:18 <tusho> And the DrScheme editor it comes with.
00:54:24 <tusho> It does all that naffy indentation for you.
00:54:45 <Slereah> I don't use any scheme right now.
00:55:34 <Slereah> Mostly conceptualizing something on Python to compile it to Scheme
00:55:47 <tusho> Scheme is a functional language (mostly) unlike Python
00:55:56 <tusho> translating python->scheme is pointless, and you might as well not use scheme
00:56:01 <tusho> It's a totally different paradigm
00:56:09 <Slereah> i'm translating Limp to Scheme
00:56:17 <tusho> Slereah: that's a bit silly
00:56:21 <tusho> why not limp->scheme using scheme?
00:56:26 <tusho> sicp contains compilers in scheme
00:56:26 <Slereah> Python is the only language I sort of know how to parse with
00:56:36 <tusho> Slereah: Sick pee! Sick pee! Sick pee!
00:57:14 <Slereah> Can you feed a function as an argument, outside of lambdas?
00:57:23 <tusho> Slereah: of course
00:57:27 <tusho> Code is data. Data is code.
00:57:33 <tusho> Slereah: Want a sekrit?
00:57:38 <tusho> (define (foo bar baz) quux)
00:57:43 <tusho> (define foo (lambda (bar baz) quux))
00:57:58 <tusho> Slereah: no, it's ^^that^^
00:58:30 <Slereah> ('cause I'm trying to write in the function)
00:58:43 <Slereah> Though I'm not too sure how to do the y thing though.
00:58:59 <Slereah> How do I... exctract the arguments of a function?
01:00:18 <Slereah> y ( f (x, y, z, ...)) gives you back the least value of y such that f = 0
01:00:43 <tusho> Slereah: Oh. Wait, is the 'y' in the function's arglist the 'y' in the u thing?
01:01:07 <Slereah> has two arguments : the function, and one of its argument
01:01:23 <tusho> mu_y(f(x,y,z,...))
01:01:27 <tusho> it extracts the arglists y?
01:02:06 <Slereah> It will use the function f over all values of y.
01:02:34 <tusho> until f(THING) = 0
01:02:35 <tusho> and it returns THING?
01:02:49 <Slereah> Technically, I think that most of the time, there will only be one argument for it to be valid.
01:03:00 <Slereah> But I can see scenarios where more than one would happen.
01:03:14 <tusho> Slereah: Well, first, how are you going to generate ANYTHING?
01:03:17 <tusho> Do you want every integer?
01:03:22 <tusho> You can't just scheme to give you 'something'.
01:03:27 <tusho> That would be pretty vague
01:03:36 <tusho> <tusho> -> f(ANYTHING)
01:03:40 <tusho> you can't pluck ANYTHING out of thing air
01:03:45 <tusho> you can feed it f(0),f(1) etc
01:03:49 <tusho> or f(a),f(ab),f(abc)
01:03:55 <tusho> but you can't just generate stuff the function wants
01:04:10 <Slereah> I'm not sure I follow your example.
01:04:44 <tusho> Slereah: What does mu(f) do.
01:04:56 <Slereah> It would work like this : (y f) would feed 0 as y to f.
01:05:06 <Slereah> If f(0) = 0, it returns 0.
01:05:46 <tusho> Slereah: OK. So integers.
01:05:59 <tusho> Slereah: What is 'y' in that case
01:06:02 <Slereah> Since it's recursive, there's only integers.
01:06:10 <Slereah> Well, f is a function of n variables
01:06:43 <tusho> u(f) = if f(0) = 0, 0
01:06:57 <Slereah> Well, it could have more than one argument.
01:07:16 <tusho> Slereah: How about ignoring the more-than-one argument aspect for now?
01:07:17 <Slereah> I don't see that happening often, but there's easy scenarios for it.
01:07:54 <tusho> (define (mu' f n) (if (zero? (f n)) 0 (+ 1 (mu f (+ n 1)))))
01:07:58 <tusho> (define (mu f) (mu' f 0))
01:08:03 <tusho> Slereah: Pretty trivial to understand, right?
01:08:04 <Slereah> For instance, y (p(1,2)(y,z))
01:08:13 <Slereah> Well, the function itself isn't the hard part
01:08:29 <Slereah> It's how to implement the multiple argument par
01:09:26 <tusho> (define (f . args) args is a list of my argumenst!! omg!!)
01:09:34 <tusho> (define (f a . args) args is a list of my argumenst, less the first one!! omg!!)
01:09:41 <tusho> Slereah: Protip 2.
01:09:46 <tusho> (apply f '(1 2 3)) => (f 1 2 3)
01:10:03 <tusho> Slereah: I believe you can do what you want with my mu and that.
01:10:51 <Slereah> I am not too sure about this.
01:11:13 <Slereah> Since the defition of doesn't contain the definition of f.
01:11:24 <tusho> Slereah: Shall I show you it?
01:11:27 <tusho> Slereah: Wait, so:
01:12:38 <Slereah> And that third variable over integers.
01:13:18 <tusho> Slereah: a and b are anything
01:13:49 <Slereah> But... mu f returns an integer, not a function
01:14:04 <tusho> Slereah: Scheme is not curries
01:14:24 <Slereah> Oh yes, multiple variables
01:15:19 <tusho> Slereah: I'm going now, have fun
01:15:21 <tusho> read my above stuff
01:15:24 <tusho> it tells you all you need
01:15:49 -!- tusho has quit (Remote closed the connection).
01:22:06 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
01:22:12 -!- Slereah has joined.
01:53:46 <ihope> Porque ya se había hecho tan rico.
01:54:54 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
01:57:49 <augur> spanish is an esolang :(
01:58:51 <ihope> You mean it's difficult, or you just don't know it?
01:59:19 -!- bsmntbombdood_ has joined.
01:59:43 -!- bsmntbombdood has quit (Nick collision from services.).
01:59:47 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
02:12:32 <augur> i mean its ugly and horrible and evil ;)
02:13:39 <augur> pero entiende un poco porque trabajo a el apple store en miami y tengo muchos colombian customers
02:16:34 <augur> well, worked, not work, but i dont know spanish well enough to be able to conjugate :D
02:16:42 <augur> its just an ugly language i thing.
02:44:46 -!- Slereah has joined.
02:45:49 -!- Corun has quit ("This computer has gone to sleep").
02:49:21 -!- ihope_ has joined.
02:57:00 -!- Nocta has joined.
03:03:38 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
03:04:00 -!- Asztal has joined.
03:06:33 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
03:06:54 -!- Asztal has joined.
03:10:44 -!- fizzie2 has quit (leguin.freenode.net irc.freenode.net).
03:10:44 -!- Slereah has quit (leguin.freenode.net irc.freenode.net).
03:10:44 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
03:10:45 -!- Nocta^ has quit (leguin.freenode.net irc.freenode.net).
03:10:57 -!- fizzie2 has joined.
03:11:34 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
03:11:39 -!- cmeme has joined.
03:12:15 -!- Asztal has joined.
03:12:29 -!- cmeme has quit (Client Quit).
03:12:40 -!- cmeme has joined.
03:17:50 -!- cmeme has quit.
03:18:01 -!- cmeme has joined.
03:23:11 -!- cmeme has quit.
03:23:22 -!- cmeme has joined.
03:28:33 -!- cmeme has quit.
03:28:43 -!- cmeme has joined.
03:33:54 -!- cmeme has quit.
03:34:05 -!- cmeme has joined.
03:34:24 -!- cherez has quit (Read error: 110 (Connection timed out)).
03:39:15 -!- cmeme has quit.
03:39:26 -!- cmeme has joined.
03:44:36 -!- cmeme has quit.
03:44:47 -!- cmeme has joined.
03:44:59 -!- cherez has joined.
03:49:57 -!- cmeme has quit.
03:50:08 -!- cmeme has joined.
03:55:19 -!- cmeme has quit.
03:55:29 -!- cmeme has joined.
04:00:40 -!- cmeme has quit.
04:00:51 -!- cmeme has joined.
04:06:01 -!- cmeme has quit.
04:06:12 -!- cmeme has joined.
04:11:22 -!- cmeme has quit.
04:11:33 -!- cmeme has joined.
04:16:43 -!- cmeme has quit.
04:16:55 -!- cmeme has joined.
04:22:05 -!- cmeme has quit.
04:22:15 -!- cmeme has joined.
04:27:26 -!- cmeme has quit.
04:27:37 -!- cmeme has joined.
04:32:47 -!- cmeme has quit.
04:32:58 -!- cmeme has joined.
04:38:08 -!- cmeme has quit.
04:38:19 -!- cmeme has joined.
04:43:30 -!- cmeme has quit.
04:43:40 -!- cmeme has joined.
04:48:51 -!- cmeme has quit.
04:49:02 -!- cmeme has joined.
04:50:49 -!- cherez has quit (Read error: 110 (Connection timed out)).
04:54:12 -!- cmeme has quit.
04:54:23 -!- cmeme has joined.
04:55:21 -!- cherez has joined.
04:59:34 -!- cmeme has quit.
04:59:44 -!- cmeme has joined.
05:04:54 -!- cmeme has quit.
05:05:05 -!- cmeme has joined.
05:10:16 -!- cmeme has quit.
05:10:26 -!- cmeme has joined.
05:15:37 -!- cmeme has quit.
05:15:49 -!- cmeme has joined.
05:20:58 -!- cmeme has quit.
05:21:09 -!- cmeme has joined.
05:25:39 -!- sekhmet has changed nick to sekhmet_.
05:25:51 -!- sekhmet_ has changed nick to sekhmet.
05:26:20 -!- cmeme has quit.
05:26:30 -!- cmeme has joined.
05:31:41 -!- cmeme has quit.
05:31:51 -!- cmeme has joined.
05:37:02 -!- cmeme has quit.
05:37:12 -!- cmeme has joined.
05:42:23 -!- cmeme has quit.
05:42:34 -!- cmeme has joined.
05:47:44 -!- cmeme has quit.
05:47:55 -!- cmeme has joined.
05:53:05 -!- cmeme has quit.
05:53:16 -!- cmeme has joined.
05:55:55 <lament> augur: you're in miami and you haven't learned spanish yet?
05:55:58 <sekhmet> There was some guy on openbsd-misc who was asking about mp3 concatenation programs because he liked to run a cronjob to change IPs every single minute, yet he wanted to listen to web radio
05:56:10 <augur> i live in fort lauderdale
05:56:12 <sekhmet> So that THEY couldn't track him
05:56:15 <augur> i worked in Aventura
05:56:21 <augur> which is in north miami-dade county
05:56:24 <sekhmet> Sec, I'll try to dig up the link
05:57:47 <sekhmet> http://marc.info/?l=openbsd-misc&m=115298981814514&w=2
05:57:52 <sekhmet> I recommend the whole thread
05:58:26 -!- cmeme has quit.
05:58:37 -!- cmeme has joined.
06:01:13 <lament> i actually have no idea whom to ask when cmeme misbehaves
06:01:19 <lament> i don't know if nef is still in charge
06:02:41 <lament> once again i ask if there's any objection to having the irseek bot log this place too
06:03:00 <lament> i'll ban whoever objects :P
06:03:48 -!- cmeme has quit.
06:03:58 -!- cmeme has joined.
06:06:59 -!- GreaseMonkey has joined.
06:09:09 -!- cmeme has quit.
06:09:19 -!- cmeme has joined.
06:14:30 -!- cmeme has quit.
06:14:41 -!- cmeme has joined.
06:19:51 -!- cmeme has quit.
06:20:02 -!- cmeme has joined.
06:25:12 -!- cmeme has quit.
06:25:23 -!- cmeme has joined.
06:30:33 -!- cmeme has quit.
06:30:44 -!- cmeme has joined.
06:35:54 -!- cmeme has quit.
06:36:05 -!- cmeme has joined.
06:41:16 -!- cmeme has quit.
06:41:26 -!- cmeme has joined.
06:46:37 -!- cmeme has quit.
06:46:47 -!- cmeme has joined.
06:51:58 -!- cmeme has quit (Connection reset by peer).
06:52:09 -!- cmeme has joined.
06:56:51 -!- ChanServ has set channel mode: +o lament.
06:57:04 -!- lament has set channel mode: +b *!*n=cmeme@*.b9.com.
06:57:19 -!- cmeme has quit (Client Quit).
06:57:46 <lament> now the question is, how do we get it back
06:58:27 -!- lament has set channel mode: -o lament.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:40:14 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
09:40:38 -!- Judofyr has joined.
09:54:13 -!- Hiato has joined.
10:30:06 -!- GreaseMonkey has quit ("Unisex.").
11:00:02 -!- Slereah- has joined.
11:42:16 -!- timotiis has joined.
11:49:37 -!- Slereah2 has joined.
11:57:02 -!- Hiato has quit (Read error: 104 (Connection reset by peer)).
12:08:47 -!- Judofyr_ has joined.
12:08:49 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
12:13:41 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
12:16:14 -!- Judofyr_ has changed nick to Judofyr.
12:57:42 -!- Slereah3 has joined.
12:57:42 -!- Slereah2 has quit (Read error: 104 (Connection reset by peer)).
12:59:07 -!- Corun has joined.
13:04:58 * Slereah3 buys "Communicating and Mobile Systems: the Pi-Calculus"
13:08:51 -!- Slereah3 has quit (Read error: 104 (Connection reset by peer)).
14:01:08 -!- Slereah4 has joined.
14:29:17 -!- cherez1 has joined.
14:29:30 -!- cherez has quit (Read error: 110 (Connection timed out)).
14:52:45 -!- Hiato has joined.
15:08:05 -!- pikhq has joined.
15:10:31 * pikhq waves at everyone. . . But this time from Boston, rather than from Colorado Springs.
15:15:49 <oklopol> Slereah4: that's also on my list of books to buy
15:17:20 <Slereah4> It will arrive here in a week or so.
15:24:58 -!- cherez1 has changed nick to cherez.
15:26:37 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
15:27:47 -!- Corun has joined.
15:34:26 <Slereah4> "He emphasizes that interactive behavior is best represented by a non-deterministic automaton which cannot be equated (behaviourally) with a deterministic automaton."
15:36:05 <pikhq> Is that *supposed* to be meaningful?
15:36:42 <Slereah4> I'll have to wait for the book to find out!
15:36:55 <Slereah4> Fuck, the science forum of Amazon is lame
15:37:42 -!- timotiis has quit (Read error: 110 (Connection timed out)).
15:44:31 -!- augur has quit (Read error: 110 (Connection timed out)).
15:55:43 <Slereah4> I ordered it from some store named "Quartermelon".
16:01:01 <Slereah4> It seems that all reviews think that this book is awesome
16:08:12 -!- tusho has joined.
16:08:25 <tusho> I am trying the console first. :P
16:11:22 <tusho> cmeme is a logbot.
16:11:24 <tusho> the ircbrowse.com one
16:12:34 <tusho> lament: OBJECT to irseek
16:13:33 -!- tusho has quit ("X11?!").
16:27:57 -!- tusho has joined.
16:29:05 <tusho> ~xXx luv tushykins xXx~
16:29:25 <tusho> hmm, that is one downside to this nick Slereah4
16:29:46 <Slereah4> Well, the previous Slereah are still on this server.
16:29:57 <Slereah4> Why doesn't this server have ghost-handling?
16:30:03 <tusho> Slereah4: It does.
16:30:08 <tusho> /ns ghost FOO password
16:30:44 -!- Slereah4 has changed nick to Slereah.
16:45:38 -!- Corun has quit ("This computer has gone to sleep").
16:46:12 <Slereah> After the one hour of back story in the first movie, I hope the new Batman will be two hours of pure Batman.
17:00:13 -!- Corun has joined.
17:06:50 <Slereah> The first part of Batman Begin is so full of leather noise.
17:06:57 <Slereah> It sounds like a BDSM porno.
17:20:04 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
17:20:40 -!- Judofyr has joined.
17:26:43 -!- Corun has quit ("This computer has gone to sleep").
17:35:27 -!- jix has joined.
18:00:40 -!- Hiato has quit ("Leaving.").
18:03:00 -!- timotiis has joined.
18:05:51 -!- augur has joined.
18:06:27 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
18:12:39 -!- jix has quit ("CommandQ").
18:13:06 -!- jix has joined.
18:15:23 <augur> oklopol, wanna help design the language? :B
18:15:50 <oklopol> i want to design everything.
18:16:22 <augur> the language im hypothesizing in proglangdesign which rhamphoryncus completely misses the point of
18:16:44 <Slereah> What would that language be?
18:17:06 <augur> well its nothing amazing right now just a few ideas that i'd like to toy with
18:17:20 <oklopol> (which x) had a nice declarative feel to it
18:17:25 <augur> namely quantification, maybe wh-phrase things, and such
18:17:27 <oklopol> i have a similar construct in muture
18:17:42 <augur> really? i figured (which x) was rather functional
18:17:47 <oklopol> "the element of x that fits here"
18:18:17 <augur> (which x is y) is practically (filter fn xs)
18:18:19 <oklopol> well it's not really functional iiuc
18:18:29 -!- kar8nga has joined.
18:19:05 <oklopol> where cond can be anything
18:19:33 <oklopol> shouldn't this return true if for some element in x (cond lement)?
18:19:48 <oklopol> or was that just a syntactic thing?
18:20:18 <augur> you're right, that's a better example
18:20:20 <oklopol> this kind of semantics for where isn't really functional, because it isn't "context-sensitive"... semantically
18:20:36 <oklopol> tusho: muture is one of my declarative langs
18:20:57 <tusho> oklopol: how many langs do you have again
18:21:11 <oklopol> well 5 in active processing
18:21:11 <augur> even? (which Integers) => [...,-4,-2,0,2,4,...]
18:21:21 <augur> but i suppose thats just the same as (even Integers)
18:21:27 <oklopol> but as i rarely finish my languages, i have lots.
18:21:39 <oklopol> for instance cise was never finished
18:21:51 <oklopol> but will prolly continue once i get my codes from my old machine
18:21:52 <augur> the idea of which i guess was more to allow it to stand in for a single item in non-predicative places
18:22:21 <oklopol> yes, but it's clearly of declarative nature
18:22:30 <oklopol> because you cannot evaluate it without knowing where it is
18:22:53 <augur> its not declarative at all.
18:22:56 <oklopol> (which List) doesn't yield a result as such
18:23:07 <augur> (which foo).bar == 0
18:23:28 <augur> first foo (\x -> x.bar == 0)
18:23:54 <augur> thats another notation i've been considering
18:24:10 <augur> foo[i] | foo[i].bar == 0
18:24:26 <oklopol> (which (range 0 1000)) * (which (range 0 1000)) == 90
18:24:42 <augur> yeah that could be declarative.
18:24:56 <augur> a lot of this stuff is vaguely constraint-like
18:25:02 <augur> like list comprehensions
18:25:14 <oklopol> it's a declarative construct. you can limit it to cases where you can optimize it to direct functional stuff, though, which you did earlier.
18:25:28 <oklopol> but the construct itself is inherently declarative
18:25:41 <augur> [(x,y) | x <- [0...1000], y <- [0...1000], x*y == 90]
18:26:24 <augur> yeah i guess it is declarative, ok.
18:27:51 <augur> the idea is more that the (which ...) constructor would be interpreted as a search on the argument
18:28:15 <augur> (which foo).bar == 1
18:28:18 <augur> would be equivalent to
18:28:46 <augur> if( foo[0].bar == 1 ){ foo[0].bar; } else if( foo[1].bar == 1 ){ foo[1].bar' } ...
18:29:34 -!- timotiis has quit (Read error: 110 (Connection timed out)).
18:31:02 <augur> tho i think i'd expand it to include more than one container
18:31:13 <augur> which foo, bar, baz: ...
18:31:37 <augur> which would be akin to list comprehensions i guess.
18:31:41 <tusho> oklopol: we should collaborate on a language
18:31:42 <tusho> the world would explode
18:31:51 <augur> i would love to see the result :)
18:32:02 <augur> it better be interesting, not another boring clone of existing languages
18:32:18 <tusho> I think of impossible things
18:33:17 <tusho> and oklopol thinks of impossible things that turn out to be possibe
18:33:19 <tusho> oklopol: idea - how about every expression returns infinite results
18:33:47 <oklopol> might be interesting to make a language where all computation is directed towards checking whether the program will halt
18:34:11 <tusho> and that the actual halting function, since its a tc language, returns infinite {T,F,T,F,T,...}
18:37:33 <tusho> oklopol: i think we're onto something
18:37:36 <tusho> every expression is a filter over the set of everything
18:38:12 <oklopol> not what's the language where you loop by quinin?
18:41:32 <tusho> oklopol: not sure what it's called
18:41:41 <tusho> however... our ideas combined ... are PAPTAIN CLAMET
18:43:26 <pikhq> I officially hate IRAF.
18:45:27 <tusho> pikhq: I hate iraq too! Dems enemies of our FREEDOM!
18:45:59 <pikhq> tusho: IRAF is a scientific program with a painful, *painful* install process.
18:46:09 <pikhq> It's *installation manual* has 18 pages.
18:46:20 <tusho> pikhq: Yeah, installing our troops was painful. But it was for FREEDOM!
18:46:30 <pikhq> And, no, they don't use autotools.
18:46:45 <tusho> Autotools? Is that some terrorist weppon?
18:46:55 <pikhq> No, it's a hippy thing.
18:47:13 <tusho> Why can't we just nuke those darn hippie commies?
18:47:41 <pikhq> You know, "Hey, man! Could you run 'cd weed&&./configure&&make&&make install'? I need some, man..."
18:48:33 -!- kar8nga has left (?).
18:49:19 <tusho> Slereah: And, well, anything that isn't #f is true.
18:49:21 <tusho> And #f is not '().
18:49:25 <tusho> And 'NIL is not '() or #f.
18:49:32 <tusho> Lisp unifies those, for some reason
18:52:22 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
18:52:31 -!- Slereah4 has joined.
18:52:31 -!- Slereah4 has changed nick to Slereah.
18:52:49 <Slereah> [19:51:17] <Slereah> Would with one variable be (define ( f y) (cond ((= (f y) 0) y) ( #t ( f (+ y 1))))) ?
18:53:30 <Slereah> Used in the context of ( f 0).
18:54:18 <tusho> Slereah: Fyi, you could just use (if cond then else).
19:01:44 -!- Hiato has joined.
19:04:00 -!- Slereah4 has joined.
19:04:21 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
19:04:33 -!- Slereah4 has changed nick to Slereah.
19:06:22 <Slereah> Thinking about it, there's actually very simple scenarios for the on many variables
19:07:40 <tusho> <tusho> Slereah: Fyi, you could just use (if cond then else).
19:07:41 <tusho> <tusho> Slereah: but ys
19:07:49 <tusho> Slereah: get this right first
19:07:55 <tusho> Show me an if-using version.
19:07:55 <Slereah> [19:54:35] <Slereah> That's so not cool.
19:08:11 <tusho> Um, using a two-clause-with-one=#f-cond is incredibly bad style.
19:08:36 <Slereah> Isn't "if then" just a shortcut for the actual cond behind?
19:08:46 <tusho> Slereah: Why does this bother you?
19:08:49 -!- Phenax has joined.
19:08:52 <tusho> You're meant to think in as high-level terms as possible.
19:08:59 <tusho> If you don't want to, then you don't understand Scheme.
19:09:03 <tusho> Or at least you are willingly ignoring it.
19:10:07 <tusho> Slereah: So what does your mu look like with if? :P
19:10:22 <tusho> (Also, I'd rename it 'mu'. 'µ' is not a valid symbol, even if your implementation accepts it.)
19:10:34 <Slereah> (define ( f y) (if (= (f y) 0) y ( f (+ y 1)))
19:10:53 <tusho> Slereah: Yes, but what's with the paren before µ?
19:11:12 <Slereah> Are the whitespace significant?
19:11:26 <tusho> Slereah: No but it looks ugly.
19:11:39 <Slereah> (define (mu f y) (if (= (f y) 0) y (mu f (+ y 1))))
19:12:00 -!- cherez has quit ("Leaving.").
19:12:23 <tusho> Slereah: OK, am I right in that the 'y' can be in any hole?
19:12:34 <tusho> the 'y' is the mu-fed one
19:12:41 <Slereah> Well, it's a version for only one variable.
19:13:14 <tusho> Slereah: I mean, in the real mu
19:13:35 <Slereah> The real mu can be applied to any variable, yeah.
19:13:52 <tusho> Slereah: Remember my trick about apply?
19:13:59 <tusho> (apply func '(1 2 3)) -> (func 1 2 3)
19:15:00 -!- cherez has joined.
19:15:58 <tusho> Does mu allow this:
19:16:06 <tusho> Slereah: Heyyy, wait.
19:16:09 <tusho> Your current mu is fine!
19:16:15 <tusho> (mu (lambda (x) (f x x)) 0)
19:16:28 <tusho> (mu (lambda (x) (f x y z)) 0)
19:18:09 <tusho> Slereah: Hm, do you want to remove the 0 parameter?
19:19:18 <tusho> Slereah: Can you answer me now.
19:19:23 <tusho> (Speficially, 'see' and 'do you want to remove')
19:19:40 <tusho> Slereah: Look abov.
19:20:09 <tusho> <tusho> Slereah: Heyyy, wait.
19:20:09 <tusho> <tusho> Your current mu is fine!
19:20:09 <tusho> <tusho> (mu (lambda (x) (f x x)) 0)
19:20:09 <tusho> <tusho> (mu (lambda (x) (f x y z)) 0)
19:20:09 <tusho> <tusho> Slereah: See?
19:20:12 <Slereah> Well, I'm okay with removing the zero.
19:20:15 <tusho> Slereah: that's the interseting bit
19:20:20 <tusho> Slereah: i.e. you only need a one-variable mu
19:20:26 <tusho> because you can use a lambda to call the function with moar
19:21:12 <Slereah> I suppose it would be a nice solution.
19:21:32 <tusho> Slereah: Yeah, it's elegant.
19:21:36 <tusho> Slereah: Now, removing the 0...
19:21:44 <tusho> Well, you just need (define (real-mu f) (mu f 0)).
19:21:53 <tusho> Except, rename mu to mu-internal
19:21:58 <tusho> So you can define (mu f)
19:22:07 <tusho> How about a nested define?
19:22:20 <tusho> (define (mu f) (define (inner f n) ... MU CODE HERE ...) (inner f 0))
19:22:25 <tusho> Slereah: Seems like the most elegant to me.
19:22:33 <tusho> (Oh, and start typing this into dr scheme. It'll do that indentation stuff.)
19:22:49 <Slereah> I'm poking around a little first.
19:22:56 <Slereah> . procedure application: expected procedure, given: 1; arguments were: 2
19:23:12 <tusho> Slereah: Uh, you evaluated 'cons', then you evaluated (1 2).
19:23:16 <tusho> You tried to call 1 as a function.
19:23:20 <tusho> On what universe does that make sense?
19:23:32 <tusho> You don't even know the basic syntax of scheme. SICP, srsly.
19:23:58 <Slereah> It makes sense in the Lisp paper :(
19:24:29 <tusho> Nobody used M-Expressions, because:
19:24:40 <tusho> Same syntax for code&data=win.
19:24:55 <augur> your m-expression is also wrong :)
19:25:30 <tusho> I was doing (eval '(cons 1 2)).
19:25:33 <tusho> That is eval[[cons,1,2]].
19:25:39 <tusho> eval[cons[1,2]] is (eval (cons 1 2))
19:25:46 <tusho> augur: M-Expressions do not have quotes.
19:25:48 <augur> eval[quote[cons,1,2]]
19:25:49 <tusho> [a,b,c] is '(a b c)
19:26:00 <augur> i dont use m expressions, you see ^^
19:26:01 <tusho> Ergo, code is different from data, and it was hideously ugly.
19:26:07 <tusho> So they got rid of it
19:26:48 <tusho> augur: that is not a direct equiv.
19:26:51 <tusho> strings are unstructured.
19:26:53 <augur> but the problem THERE is that code and data are so very painful in structure
19:27:03 <augur> in lisp its blindingly simple
19:27:08 <augur> (procname arg arg arg)
19:27:23 <augur> but to eval a string in, say, javascript
19:27:40 <augur> procname + "(" + arg1 + "," + ... + ")"
19:27:51 <augur> which is not as intuitive
19:28:14 <augur> lisp is sexy in regards to reflectivity and such, i agree
19:28:47 <tusho> augur: on another note, )I()£UI)(!U()U¬)(U¬()U)(U¬)¬()¬U)¬
19:29:02 <tusho> oklopol: Neu language syntax: (, ), U, I, ¬ and £
19:29:15 <augur> btw, in his SICP class brian harvey mentioned some sort of book that he read when he was younger which solved the Pilgrims and Cannibals problem in a number of different ways
19:29:47 <augur> and the end of the problem involved constructing a data structure so finely tuned to the problem that you didnt have to do any computation you just read the solution off the structure
19:30:09 <augur> or maybe it was missionaries and cannibals
19:30:15 <augur> the idea is something like this:
19:30:22 <augur> you have a number of missionaries, say
19:30:30 <augur> and they're venturing through cannibal territory
19:30:34 <augur> they have to cross a river
19:31:03 <augur> and if there are ever a small enough group of missionaries, the cannibals will eat them
19:31:35 <augur> so you have to figure out how to transport people across the river in such a way that at no time are N or fewer people alone on either side of the river
19:31:41 <Slereah> Oh. It's like the river crossing problem, except with more cannibals
19:31:54 <augur> and without the fox travelling with you
19:32:02 <augur> the cannibals are on both sides at all times
19:32:20 <Slereah> Can't you offer them the goat?
19:32:38 <augur> supposedly theres a DATA STRUCTURE thats so tuned to the problem that you dont need to do any computation
19:33:28 <tusho> augur: the CannibalDataStructureDeluxe
19:33:51 <Slereah> Is it written in Malbolge?
19:34:21 <Slereah> I wonder, are there trivial programs to write in Malbolge?
19:34:32 <augur> sure, ones that dont work :)
19:35:06 <tusho> Slereah: You can write a generator pretty easily.
19:35:18 <tusho> In lisp! (hi andrew cooke, writer of the malbolge hello-world)
19:35:51 -!- jix has quit (Read error: 113 (No route to host)).
19:37:14 <pikhq> I wonder: is he in here?
19:37:17 <tusho> augur: a code generator for malbolge
19:37:25 <tusho> he's around though
19:37:28 <tusho> http://www.acooke.org/
19:37:42 <pikhq> We need every major esoteric developer in here.
19:37:54 <tusho> warning: tiny font
19:38:02 <pikhq> (I'm sure I've said that in here once before. . . Need to grep the logs)
19:39:15 <tusho> pikhq: let's emulate andrew's style
19:39:24 <tusho> (all lowercase, minimalist, brief)
19:39:24 <Slereah> And let him see what his language has wrought upon this earth
19:39:33 <tusho> i believe he knows
19:39:43 <pikhq> Slereah: Let's bring Sukoshi back here kicking and screaming.
19:39:51 <tusho> (oh, and dense on the information-character ratio)
19:40:10 <pikhq> ... You don't know Sukoshi?
19:40:21 <tusho> he's relatively new pikhq
19:40:29 <pikhq> tusho: Argh. You're right.
19:40:44 <pikhq> Speaking of which. . . tusho, I've never seen you around here.
19:40:45 <augur> i hve a better idea
19:40:45 <augur> why dont we help one another BECOME major esodevers
19:40:45 <augur> surely with our combined efforts we can out esolang the other guys!
19:40:58 <tusho> i may or may not be the one known as ehird, pikhq
19:41:07 <tusho> and you are not emulating andrew's style, heretic!
19:41:18 <pikhq> augur: Some of us *are*.
19:41:35 <tusho> another heretical statement!
19:41:37 <pikhq> Are major esolang developers.
19:41:47 <augur> well then why did you say we needed some? :P
19:41:51 <pikhq> *cough*Gregor*cough*
19:41:53 <augur> whats ais' language?
19:42:03 <tusho> augur: ais won the wolfram prize
19:42:12 <tusho> and maintains c-intercal
19:42:40 <tusho> minimax, backflip, abcdxyz
19:42:47 <tusho> wiki cyclic tag, formula, forte
19:42:50 <tusho> underload, thutu, 1cnis
19:42:59 <tusho> Slereah: someone pikhq knows i think
19:43:02 <Slereah> Underload is quite nice, too.
19:43:34 <augur> oh, so he must've done a cellular automata-like language.
19:44:30 <pikhq> Sukoshi *was* quite frequent in this channel a couple years ago.
19:44:35 <tusho> he did originally but gave it up. he uses perl code in his proof.
19:44:46 <tusho> pikhq: she(?) came in recently, no?
19:45:06 <pikhq> Dammit; I missed it. :(
19:45:07 -!- Hiato1 has joined.
19:45:13 <tusho> pikhq: you were here!
19:45:27 <tusho> Slereah: none, i think
19:45:58 <pikhq> I can't remember which ones she had done ATM, sadly.
19:46:16 <Slereah> Then she's no big time esolanger :o
19:46:26 <tusho> Slereah: she's not, no
19:46:29 <tusho> at least, not afaik
19:47:02 <pikhq> Among other things, she has designed a Brainfuck CPU in Verilog.
19:47:26 <pikhq> I don't think she got *hers* out on the web, though.
19:47:26 <Slereah> That one? http://www.clifford.at/bfcpu/bfcpu.html
19:47:49 <tusho> so, who here is excited about eso-std.org's future riches? like: pastebin with ais523-coded intercal highlighting, an online code-tester and REPL for the langs, integrated into the pastebin (for when you don't have an interpreter lying around), etc.
19:48:03 <tusho> because, I actually have a server up.
19:48:18 <Slereah> Will we have an eso police to enforce the ESO standard?
19:48:20 <oklopol> that does sound pretty great
19:48:53 <pikhq> Sukoshi was also somewhat influential on the design of PEBBLE.
19:49:20 <pikhq> (although oerjan takes the prize for 'most help'. . .)
19:49:42 <tusho> but I'm currently hanging on a pun of 'Esoteric Standards'
19:49:44 <Slereah> Shoot to kill if you see another Brainfuck clone!
19:49:55 <pikhq> Slereah: Even if it's creative?
19:49:59 <pikhq> (see: Dimensifuck)
19:50:02 <tusho> standards in the sinatra sense: that way we can include 'the best' of esolang tools.
19:50:10 <tusho> as well as well, actual standards
19:50:12 <pikhq> (see: Dimensifuck)
19:50:25 <tusho> dimensifuck, You Are Reading The Name Of This Esolang, ...
19:50:40 <Slereah> Well, those already exist.
19:51:07 <pikhq> But they *are* creative Brainfuck clones.
19:52:00 <tusho> oklopol: it will be awesome yes
19:53:48 <oklopol> my hot comment was about sukoshi :)
19:53:56 <augur> i wonder what sort of data structure solves the missionaries problem
19:54:10 <augur> you know, i think i know
19:54:43 <Slereah> Many little huts, I suppose
19:55:01 <augur> i think it'd be the set of partitions
19:55:16 <augur> tho that would still require some computation.. hm.
19:55:33 <Slereah> Just do motherfucking brute force!
19:55:34 <augur> you'd need to read through and look for partition diffs which fit the constraints imposed by the problem
19:56:44 -!- jix has joined.
19:56:52 <augur> there are only 2^N possible partitions, where N is the number of cannibals and missionaries together
19:57:01 <lament> tusho: why do you object?
19:57:10 <tusho> lament: irseek sucks
19:57:22 <tusho> it's commercialised, the site interface is tacky, and the current way works fine
19:57:32 <lament> The current way doesn't work fine. I banned cmeme.
19:57:40 <tusho> lament: cmeme does ircbrowse.com.
19:58:01 <tusho> lament: Anyway, eso-std.org is up and ready to host a logbot with full searching and a 'pretty' interface if ever needs be
19:58:08 <lament> tusho: how is irseek commercialized?
19:58:11 <tusho> and ais523 has root to that as well as me, and I can give you it if you like
19:58:29 <tusho> lament: it's a company and they're primarily out to make money.
19:58:33 <tusho> what other definition is there?
19:58:45 <lament> tusho: do you think that can negatively affect the channel in any way?
19:58:54 <tusho> lament: i dislike the service because of it
19:59:01 <tusho> so I would not wish for it to be the logger of this channel
19:59:10 <lament> i'm not saying they should be the logger.
19:59:22 <tusho> lament: I would not wish for them to log it.
19:59:32 <tusho> I have already explained why.
19:59:57 <lament> The presence of irseekbot in here won't cause you any harm.
20:00:03 <tusho> out of the interests of keeping a company's hands off of this channel, and because it's not a very good service in my mind anyway.
20:00:34 <tusho> lament: looking at what it _would_ offer us, positively, is a nice search function and a pretty log view.
20:00:44 <tusho> eso-std can start logging today and have an interface that nice by tomorrow, most likely.
20:00:57 <lament> tusho: and some free publicity. People use irseek.
20:00:58 -!- Hiato has quit (Read error: 110 (Connection timed out)).
20:01:06 <lament> When they search irseek for things like brainfuck, they will not find us.
20:01:17 <tusho> lament: good: we'd end up banning them for being annoying spammers, mostly.
20:01:19 <lament> People who search eso-std already fonud us.
20:01:28 <tusho> Have you seen some people who have just found brainfuck?
20:01:33 <lament> tusho: So you object to this channel being more widely known?
20:01:40 <lament> You want to keep it a secret?
20:01:52 <tusho> lament: because of its subject matter and what i've seen... I don't think advertising via irseek is a good idea.
20:02:01 <lament> it's not advertising, it's logging
20:02:12 <lament> what i really don't get is freenode policy
20:02:13 <tusho> lament: but you just gave it advertising us indirectly as a good point
20:02:15 <lament> this is a public channel
20:02:35 <lament> without freenode's silly policy, any logger could join it anyway
20:02:46 <tusho> lament: Anti-case: #wikipedia
20:02:49 <lament> i don't understand why that should not be allowed, provided the bot doesn't disturb anyone
20:02:55 <lament> what happened in #wikipedia?
20:03:02 <tusho> Daniel Brandt of wikipedia-review constantly scours logs for personal information and anything he can use against them,
20:03:10 <tusho> quotes it out of context, and puts it on his wikipedia-watch site.
20:03:13 <lament> well, we're already logged
20:03:16 <tusho> He puts secret loggers in there.
20:03:26 <tusho> the freenode policy is useful to them because they can stop him
20:03:27 <lament> being logged in a different place won't change the fact that all our logs are already online
20:03:28 <augur> i think i know what the data structure is :o
20:03:48 <lament> you can ask the irseek people to get rid of the bot at any time
20:04:03 <lament> i just don't see any benefit to _not_ having it here
20:04:07 <tusho> lament: I would but I doubt they'd listen.
20:04:22 <tusho> Meh, anyway that log interface sounds like a fun project anyway. I'll probably start working on it.
20:04:23 <lament> after the bad PR they got initially, they're really trying to be nice
20:07:43 <lament> well, i won't invite them if you object to it
20:07:58 <lament> but i still don't understand your reasoning
20:08:23 <lament> "they're commercial therefore it's somehow bad in principle"
20:12:55 <Slereah> What the fuck is google code
20:14:24 <tusho> a google code search
20:18:47 <oklopol> i thought it was something a bit more extensive than the codesearch
20:18:52 <oklopol> not that i actually know / care
20:19:11 <oklopol> lament: just ban tusho and let them put the bot here, tusho's new, who cares ;)
20:19:44 <Slereah> Come on, tusho is awesome!
20:19:51 <tusho> yeah I only came in here a few days ago!
20:20:05 <Slereah> But already, he's taking the channel by storm!
20:21:32 <lament> i think that's not fair
20:21:40 <lament> i think we should invite irseekbot into the channel, and let them duel
20:21:44 <tusho> lament: (i'm ehird.)
20:21:53 <tusho> OH SHIT, now you have reason to ban me!
20:22:26 <lament> man against the machine!
20:22:39 <tusho> That musta been a good kill.
20:25:21 <lament> what digital camera should i buy?
20:27:55 <augur> i think ive found all solutions for the 3x3 missionary problem :o
20:29:35 <augur> 3 missionaries, 3 cannibals.
20:30:05 <augur> well, there are infinitely many solutions, but only a finite number without repetition
20:30:59 <Slereah> and I assume that the goal is to make it short
20:31:23 <augur> through the solution space
20:37:59 <tusho> is graue ever around?
20:54:12 -!- pikhq has left (?).
21:07:27 -!- Deformati has joined.
21:10:25 <Slereah> What is the purpose of "let"?
21:11:03 <augur> in a functional way
21:11:16 <augur> in lisp, for instance
21:11:17 -!- Hiato1 has quit ("Leaving.").
21:11:34 <augur> ((lambda (x) ...) 5)
21:12:25 <augur> (let ((x 5) (y 10)) ...) -> ((lambda (x y) ...) 5 10)
21:15:10 <augur> in some languages let is just the var decl keyword
21:15:15 <tusho> ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzzzzzzzzzzzzzzZZZZZZZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzzZZZZZZZZZZZzzzzzzzzzzzZZZZZZZzzzzzZZZZZZZZZZZZZzzzzzzzZZZZZZZZZZZZzzzzzzzzZZZZZZZZZzzzzzzzzZZZZZZZZZZzzzzzzzZZZZZZZZzzzzzzzzZZZZZZZzzzzzzzzzZZZZZZZzzzzzzzzzZZZZZZZzzzzzzzzzzzzZZZZZZZZzzzzzzzzZZZZZZZZZZZzzzzzzzzZZZZZZZZZzzzzzzzzzzzzZZZZZZZZZZZZZZZZZZzzzzzzzzzzzzZZZZZZZZZzzzzzzzzZZZZZZZZZZZzzzzzzzZZZZZZZZZZZZZZZzzzzzzzzzzzzZZZZZZZZZZZzzzzzzzzzzzzzZZZ
21:15:15 <tusho> ZZZzzzzzzzzzzzzzZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
21:17:51 <tusho> ZZZzzzZZZZZZZZZZZZZZZZzzzzzzzzzzzZZZZZZZZzzzzzzzzZZZZZZzzzzzZZZZzzzzZZZZzzzZZzzzZZZzzzzzZZZzzzZZZzzzzZZzzzzZZzzzZZZzzzZZZz
21:18:04 <augur> hello world program?
21:18:17 <augur> is there an esolang with unary numbers?
21:18:22 <augur> thats like brainfuck or something right?
21:18:38 <Slereah> Programs in it are impossibly long.
21:18:41 <augur> but like languages without number prims
21:18:46 <augur> where you have to increment a counter
21:18:55 <augur> is effectively unary
21:19:04 <augur> is brainfuck/befunge/etc like that?
21:19:19 <Slereah> Unary uses Brainfuck with three bits per instruction
21:19:34 <Slereah> And then converts it to unary, with "0" as a symbol.
21:20:36 <tusho> http://www.reddit.com/r/programming/info/6m5el/comments/c048udz MESSAGE OF THE DAY.
21:21:22 <tusho> Slereah: simplest way to do unary BF:
21:21:30 <tusho> treat it as a string of ascii characters
21:21:35 <Slereah> "Imperative languages generally rely on a concept of linear time, while aliens, as we know, are fully 4-dimensional beings, able to move back on forth in time freely."
21:22:08 -!- Deformative has quit (Read error: 110 (Connection timed out)).
21:22:18 <augur> aliens program functionally :)
21:22:34 <tusho> Slereah: well, imagine this
21:22:47 <tusho> that's 4 ascii characters (err, whatever)
21:22:51 <tusho> it's 4 bytes, regardless.
21:23:02 <tusho> Just convert that hex number into unary
21:23:07 <tusho> Fucking huge, yes. But tada.
21:23:17 <tusho> Then just do it in reverse and feed it into an interp
21:24:29 <tusho> Slereah: Well, hello world - ,[.,] - is insanely large in it.
21:26:54 <augur> functional reactive programming has temporal entities as first class values
21:27:14 <tusho> augur: I am going to write a C->Lisp compiler in Lisp.y/n
21:27:32 <tusho> Slereah: your second deduction is wrong
21:27:53 <tusho> augur: because the other way is more common
21:27:57 <tusho> and I like c compilers
21:28:31 <augur> 1f5b2e1f5d in binary wouldnt be billions of bits
21:28:44 <augur> it would be 40 bits.
21:28:48 <Slereah> No, but 1f5b2e1f5d in unary would be.
21:29:01 <augur> then dont use the term bits :p
21:29:11 <Slereah> But you could encode them with bits
21:29:25 <Slereah> (Because well, you do need eof)
21:30:35 <tusho> cycle the program!
21:30:49 <tusho> If you cycle the program it's just 1=1+x
21:31:13 <tusho> now, who wants to hear my cool anti-spam idea.
21:31:35 <Slereah> It would probably better to change hex to something lighter.
21:31:38 <augur> thats a useless program.
21:31:38 <augur> reactive programming
21:31:44 <Slereah> For instance, code with 1-2-3-4-5-6-7-8
21:32:13 <tusho> Well yeah. but still
21:32:21 <tusho> augur: want to hear my anti-spam idya?
21:33:19 <tusho> augur: it's very awesome
21:35:09 <augur> john c dvorak gets no spam
21:35:30 <tusho> augur: dvorak is a self-aware idiot
21:35:44 <augur> a self-aware idiot that gets no spam!
21:35:48 <tusho> that is, he's aware he's an idiot and does it for the money and fame
21:35:53 <tusho> and he's also a total fuckwit
21:38:18 <tusho> it's similar to spampoison but cleverer.
21:38:37 <tusho> basically, on every page on your site link to this page (just put it as 'Anti-spam' or something)
21:38:44 <tusho> on every page with an email address
21:38:48 <tusho> put it a few times at the top
21:39:02 <tusho> has the regular loads-of-fake-random-email-addrs
21:39:14 <tusho> they're @male.yourdomain (yes, male :P)
21:39:38 <tusho> which is a seed to generate more emails
21:39:48 <tusho> whenever anyone emails to @male.yourdomain
21:39:53 <tusho> it logs their email and info
21:39:58 <tusho> and BANS THEM from emailing anything @yourdomain
21:40:14 <tusho> (at the top of the page is a note telling you that in big bold letters so real users don't do it)
21:40:47 <tusho> now you not only block spammers before they get to harvesting your addr [because the link is first] but you have a list of spammers!
21:41:56 <tusho> augur: ooh, another idea
21:42:01 <tusho> when you DO email @male.yourdomain
21:42:16 <Slereah> Do you even need to have the email adresses on the site?
21:42:16 <tusho> it bounces back an email saying 'You have been automatically banned by this anti-spam blah blah blah'
21:42:28 <tusho> 'To unban yourself, reply to this email (quoting it)'
21:42:29 <Slereah> Or is there a way to put it in the sourcecode
21:42:35 <tusho> and it has a thing like
21:42:36 <Slereah> So that only spambots will see it
21:42:39 <tusho> '98e79d87a98479374923487f98d948yr943uf8r34'
21:43:02 <tusho> when it receives that to, like, @male-unblock.yourdomain
21:43:03 <tusho> it unblocks the email
21:43:14 <tusho> (since only a human would be able to reply to that correctly)
21:43:16 <tusho> Slereah: For a start it must be a seperate pgae for the 'moar' trick
21:43:20 <tusho> and a lot of spammers e.g. automate IE
21:43:26 <tusho> so only _viewable_ stuff is counted
21:43:53 <tusho> it's just a discreet link
21:43:55 <tusho> at the bottom of your page
21:43:58 <tusho> in small font if you like
21:44:08 <Slereah> Make it black on a black background!
21:44:17 <tusho> (and at the top of pages that have emails, in a small font: '(If you're a spammer, you might like [this], [this], or maybe [even this])')
21:44:26 <tusho> Slereah: Only viewable links are 100% guaranteed to work
21:44:40 <tusho> Slereah: Because a lot of them automate IE.
21:44:49 <tusho> to avoid traps like this
21:44:55 <Slereah> But isn't black on a black background still visible for a robot?
21:44:55 <tusho> if they don't they will in the future
21:45:03 <tusho> Slereah: Not if it automates IE.
21:45:12 <tusho> This is what it does:
21:45:26 <tusho> - their email database becomes commercially useless
21:45:34 <tusho> - they cannot email you spam
21:45:40 <tusho> - you have a list of all spammers
21:45:59 <tusho> You could report the list to the police, for instance. Or give it to an anti-spam project.
21:46:25 <tusho> (To avoid lawsuits, put at the top of the page something like 'By sending messages to this address, you hereby agree to have your details recorded and sent off and blah blah asshole')
21:46:44 <Slereah> What if they call robo-lawyer?
21:47:07 <tusho> Slereah: well, 'or use a program on behalf of yourself'
21:47:24 <tusho> but, robo-lawyers are PURELY LOGICAL BEINGS and therefore can't use the chewbacca defense
21:47:26 <tusho> I think we're safe
21:47:35 <tusho> besides, a spammer prosecuting someone for fighting spam? That'll never fly.
21:47:41 <Slereah> You can use the old logic bomb.
21:48:00 * tusho has quit (Read error from host)
21:48:09 <Slereah> Tusho was a robot all along!
21:48:17 * tusho has joined #esoteric
21:48:20 * tusho has left #esoteric
21:49:18 <tusho> wait why am i still here
21:50:02 * tusho has quit (Read error from host)
21:50:25 <augur> it doesnt help that you can tell the difference between server messages and /me messages
21:50:41 <tusho> augur: I'll just hack the server than
21:50:55 * tusho has quit (Killed: K-Line by lilo: OVER MY DEAD BO- wait)
21:51:12 <tusho> why didn't I make a dead lilo joke earlier, I wonder
21:51:20 <tusho> i am normally master of the Too Soon
21:52:38 <Slereah> I only ever saw porn of it, so I don't know much!
21:53:25 <Slereah> The translation from limp to scheme isn't that hard for the functional part
21:53:29 <Slereah> It's mostly already there!
21:53:35 <tusho> augur: lilo - founder of freenode
21:53:46 <tusho> car hit bike splat lol coma (time passes) oh he died
21:54:00 <Slereah> Was he in the car or on the bike
21:54:35 <Slereah> Problem is, I'm not too sure how to do a conditional in pi calculus
21:54:47 <Slereah> Without adding some operator to it
21:54:56 <tusho> Slereah: Make it lambdalicious
21:55:37 <Slereah> Well, the thing is, the only thing I have no idea how to do is how to do input on a conditional.
21:56:10 <Slereah> For the output, since it will depend on the functions, I can just output 0.
21:56:37 <Slereah> Why don't you marry it then.
21:57:02 <tusho> SICP IS A POLYGAMISRT
21:57:16 <augur> its a neat language
21:57:20 <augur> leave ungers language alone!
21:57:47 <tusho> BEST LANGUAGE: N+1Q
22:00:25 <Slereah> since there's no difference between a channel and an object in pi.
22:00:38 <tusho> Slereah: channel=object=LAMBDA
22:00:40 <Slereah> The input or not could be decided by a function too.
22:01:01 <Slereah> Instead of doing a(x), I could do f(stuff)(x)
22:01:20 <Slereah> I dunno. I sort of wanted to keep the two separated.
22:01:37 <Slereah> I'd better wait for the book t get a better feel of pi.
22:02:07 <Slereah> For I made it my life mission to bring to life the neglected computational models in esoteria.
22:03:32 <Slereah> tusho : Neglected, not non-existent
22:03:38 <tusho> Slereah: Invent it!
22:04:04 <augur> is there any programming language thats not piet-like which requires the you program visually in order to actually achieve anything quickly?
22:04:08 <tusho> Slereah: But ... you're Slereah
22:04:19 <tusho> non-eso, well. eso.
22:05:45 -!- Deformati has changed nick to Deformative.
22:14:07 <augur> im looking at subtext
22:16:20 <tusho> Subtext sucks yeah
22:16:49 <augur> i can easily imagine a text based language that achieves similar results
22:16:54 <tusho> I'm workign on a fun dependently-typed language
22:17:03 <tusho> Basic syntax, basically like haskell.
22:17:17 <tusho> id : forall \a. a -> a; id a = a;
22:18:30 <tusho> augur: forall is a function
22:18:35 <tusho> forall : (Type -> a) -> a
22:18:40 <tusho> (\a. b) is a lambda
22:18:47 <tusho> like Haskell's (\a -> b)
22:18:52 <tusho> because: forall : (Type -> a) -> a
22:19:02 <augur> oh i see what you're doing
22:19:29 <tusho> augur: types are just code
22:19:40 <augur> but i dont see how your forall is working
22:19:47 <tusho> augur: well, the function itself is magical
22:19:51 <tusho> forall (\a. a -> a)
22:19:56 <tusho> it's just calling forall with a function
22:19:59 <tusho> that takes a type and returns a type
22:20:03 <augur> but whats the functon?
22:20:06 <tusho> augur: a primitive
22:20:13 <tusho> it's just Haskell's 'forall'
22:20:20 <augur> no i mean what is (\a. a -> a)
22:20:52 <tusho> augur: uh, a function
22:20:56 <tusho> it takes an argument a, and returns (a -> a)
22:21:02 <tusho> (->) : Type -> Type -> Type;
22:21:06 <tusho> it's the function type
22:21:20 <tusho> forall \a. a -> a : Type
22:21:22 <augur> haskell doesnt do it that way
22:21:29 <tusho> augur: haskell has a seperate type and value language
22:21:38 <tusho> in this, the type system language is the value language
22:21:41 <augur> in haskell the id function would be of type
22:21:46 <tusho> augur: I know haskell, kthx.
22:21:58 <tusho> But apparently you were not telling the truth when you said you understood types as values..
22:22:07 <augur> no, i didnt understand your notation
22:22:34 <tusho> augur: can you understand this
22:23:06 <Slereah> What's a kitty program in Scheme?
22:23:13 <augur> yes, its a function func applied to a lambda \a.a+1
22:23:16 <Slereah> Googling cat and scheme did not fare too well.
22:23:27 <tusho> augur: what about this
22:23:30 <tusho> forall (\a. a + 1)
22:23:36 <tusho> it's a function forall applied to a lambda \a.a+1
22:23:55 <tusho> (->) : Type -> Type -> Type;
22:24:04 <tusho> that is, (a -> b) where a and b are types, is a type
22:24:09 <tusho> augur: (->) is just a regular function
22:24:13 <tusho> takes two types, returns a type.
22:24:14 <tusho> Denotes a function.
22:24:17 <tusho> augur: Understand so far?
22:24:34 <tusho> forall (\a. a -> a)
22:24:58 <tusho> forall : forall \a. (Type -> a) -> a; (Yes obviously we get into recursion here.)
22:25:08 <tusho> So, {{forall (\a. a -> a)}} is a Type.
22:25:15 <tusho> It happens to be the type of id.
22:25:29 <augur> ok now i think you're over my head but whatever :P
22:25:42 <tusho> you understand forall (\a. b)
22:25:49 <tusho> but not forall (\a. a -> b)?
22:25:51 <tusho> that makes no sense
22:26:09 <tusho> Slereah: ok, do _you_ grok dependent types
22:28:21 <oklopol> augur: is there an esolang with unary numbers? <<< in many languages you have to build numbers from zero and succ, and in many languages you just have increment, decrement and zero-check, but "having unary numbers" doesn't really mean anything :)
22:28:35 <tusho> oklopol: do you understand dependent types
22:29:12 <augur> tusho doesnt like that i didnt understand him so now hes determined to find someone who does understand him so he wont feel alone
22:29:33 <augur> tusho: my problem is more with your use of forall on a LAMBDA not on a TYPE
22:29:36 <augur> thats what i dont get
22:29:51 <Slereah> Don't worry tusho, we still love you
22:29:57 <tusho> augur: forall gives its lambda a forall'd type.
22:29:59 <Slereah> Even if you love dependant types
22:30:09 <tusho> forall (\a. In here, 'a' is a 'forall'd type)
22:30:19 <tusho> augur: one line up.
22:30:21 <tusho> forall (\a. In here, 'a' is a 'forall'd type)
22:30:34 <tusho> augur: what? what? what? what? what?
22:30:37 <tusho> forall (\a. In here, 'a' is a 'forall'd type)
22:30:46 <augur> i can keep typing what all night long
22:31:08 <tusho> augur: maybe you would get further if you explained which part doesn't make sense.
22:31:20 <augur> i did: foralling a lambda.
22:31:29 <tusho> augur: how about this
22:31:38 <tusho> giveMeAForalldTypePlease (\a. In here, 'a' is a 'forall'd type)
22:31:49 <augur> nope, that makes no sense.
22:31:56 <tusho> augur: why the hell not
22:32:03 <augur> because you're confusing.
22:32:24 <tusho> augur: 'forall a. b' in haskell
22:32:34 <tusho> 'give me a forall'd type - call it a - and then, b'
22:32:49 <tusho> my 'forall' just makes that explicit: the 'giving' is where it gives it to the function it's passed.
22:33:23 <augur> well your forall is confusing to me.
22:33:36 <oklopol> i don't see why people are so obsessed with preventing spam, i never get any, and i always boldly give out my villsalo@tkukoulu.fi email address without encryption
22:33:40 <tusho> augur: wow really.
22:33:50 <augur> haskells is clearer to me, yes.
22:34:04 <tusho> augur: yes, but haskell is two languages
22:34:09 <tusho> 'haskell', and 'haskell's types'
22:34:12 <tusho> mine is just one unified language.
22:34:19 <tusho> it is its own type system
22:34:28 <tusho> oklopol: sure - but this way lets you report spammers
22:36:39 <Slereah> Is there a list of cat programs somewhere?
22:38:08 <oklopol> nopol is based on nop-calculus ofc
22:38:33 <augur> tusho did you just confuse the haskellians as well? lol
22:39:00 <tusho> augur: most of them actually understand dependent types, types-as-values, values-as-types, and type systems
22:39:03 <tusho> far more than me, too
22:39:11 <tusho> so, no, you're the only confused one
22:39:24 <augur> and yet they're not assholes when someone doesnt understand it like you are
22:39:44 <tusho> augur: I haven't been an asshole.
22:39:44 <augur> they're kind and gentle and loving
22:39:47 -!- jix has quit ("CommandQ").
22:39:52 <tusho> If you'd kindly point out where I have been...
22:41:32 -!- jfredett has quit (Read error: 104 (Connection reset by peer)).
22:42:01 <tusho> wait, no, I'm not into that
22:42:50 <Slereah> This will be archived and held against you.
22:43:25 <tusho> Slereah: I've said far worse
22:43:42 <oklopol> tusho: i admit reporting spammers is fun, but i don't actually have anything against them
22:46:14 <augur> ok so tell me what you think of this model for a reactive language's implementation: you'd set up your definitions, like x^2 + y -> z, which would get transformed into a dependency table like x: (z,x^2 + y), y: (z,x^2+y)
22:47:15 <augur> when x or y is changed, the interpreter looks up the variable in the dependency table, and for all pairs, it goes through and updates the values in each of those variables useing the stored function
22:47:38 <augur> the arrow showing dependencies
22:47:54 <augur> x -> y means "the value of x gets pushed into y"
22:48:01 <augur> so whenever you change x, you also force a change in y
22:48:21 <augur> its sort of the reverse of a function i guess you could say
22:48:40 <oklopol> i guess you could say it's "="
22:48:59 <augur> if you had a function like z = x^2 + y, whenever you ask for z, it goes out and finds x and y and performs the function and returns the value
22:49:04 <augur> whereas reactively the reverse happens
22:49:26 <augur> whenever you change x or y, the change cascades to everything thats defined in terms of it
22:50:36 <augur> its just functions from the other direction
22:50:49 <augur> functions get called, which pulls values int
22:51:01 <augur> reactions get triggered, which pushes values out
22:51:27 <augur> functions get values when values are requested, reactions push values when values change
22:52:21 <oklopol> dataflow programming, i get it
22:52:32 <augur> well, reactive programming, but sure.
22:53:40 <augur> anyway, so thats my idea of interpreting it: when you set up a reaction like x^2 + y -> z
22:54:07 <augur> what the interpreter does is set up an entry in the dependency table for x and for y, each saying that z gets the value x^2+y
22:54:49 <augur> so when you say 5 -> y, or something, the interpreter looks up y and says, aha, z depends on y, let me set the new value of z.
22:55:44 -!- Judofyr has quit.
22:56:39 <oklopol> AND FIXED-POINTS FOR CIRCULAR DEPENDENCY!!
22:56:48 <oklopol> EF, HAVE I MENTIONED EF TODAY??!?!?
22:57:25 <tusho> oklopol: now what I said about all expressions returning infinite values, your directed-to-halting-problem-computation idea, where the halting function returns the infinite cyclic list of {T,F,T,F,T,F,...}, and how every expression filters over the infinite set of everything
22:57:53 -!- Corun has joined.
22:59:26 <Slereah> Hm. I should start writing up the specs for Limp while waiting for the pi.0
23:02:51 <oklopol> i was thinking, quining + H()
23:03:02 <tusho> oklopol: ok, now we have to munge that into my infinite-list-of-values thing
23:03:07 <tusho> I already mugned H() into it as you can see
23:03:11 <tusho> so we need to munge the quining into this paradigm
23:03:21 <tusho> and then make it into the exprs-filter-everything paradigm
23:03:22 <oklopol> H() needs to be the only way to loop
23:03:23 <tusho> once we've done that
23:03:26 <tusho> WE GET THE LANGUAGE!
23:04:11 <oklopol> ALSO ALL SENTENCES CONTAINING THE NAME THE LANGUAGE SHOULD BE IN CAPS.
23:04:43 <tusho> THE LANGUAGE WILL BE AWESOME
23:04:49 <tusho> oklopol: wow, it's like those right-to-left unicode characters
23:04:53 <tusho> they affect everything around them
23:04:59 -!- timotiis has joined.
23:06:34 <oklopol> exactly what i was thingering
23:08:54 <tusho> oklopol: this is great
23:09:00 <tusho> oklopol: and this language is even implementable
23:09:05 <tusho> because H doesnt' actually caclulate it
23:09:17 <tusho> it just gives a cyclic list of both possibilities (T and F)
23:09:21 <tusho> so it's not very useful
23:17:21 <oklopol> i'm not in a very intelligent mood atm, so i can only humor you with random comments
23:17:37 <Slereah> I almost made a cat program
23:17:44 <oklopol> but i do think H might own in an esolang, as a looping construct
23:18:49 <Slereah> What does not compute in ((u) (u) (display (read))?
23:18:55 <Slereah> Where u is the Turing combinator.
23:19:16 <Slereah> It asks for input, output it, and then asks for input but never output it anymore.
23:20:13 <tusho> Slereah: Define u.
23:20:37 <tusho> Slereah: (And why not just use a regular loop? Scheme isn't combinator-land.)
23:20:39 <Slereah> (define (u) (lambda (x y) (y (x x y))
23:21:00 <Slereah> Well, I made the same program in Lazy Bird.
23:21:11 <Slereah> So I thought I might as well get my money's worth
23:21:37 <Slereah> Plus I'm not sure how to loop in scheme.
23:22:11 <tusho> Slereah: (u) is returning a lambda
23:22:18 -!- revcompgeek has joined.
23:22:19 <tusho> (define (u x y) (y (x x y)))
23:22:21 <Slereah> I could use recursion to get in the functional mood, but well.
23:22:39 <Slereah> Does it matter that it's a lambda?
23:23:32 <tusho> Slereah: (define (u) (lambda
23:23:43 <tusho> Why is 'u' a function that does nothing but return another function?
23:23:50 <tusho> Why not just define u to be the function:
23:23:53 <tusho> (define u (lambda (x y) ...
23:24:05 <tusho> Which then, optionally, reduces to (define (u x y) ...
23:24:19 <Slereah> Well, it's all fine and dandy
23:24:23 <tusho> oklopol: Slereah is treating scheme like a cross of Python and the lambda calculus, which is resulting in MUCH FUN for me..
23:24:26 <tusho> Slereah: No, no it's not.
23:24:35 <Slereah> But it works exactly the same way as the lambda :o
23:26:40 <tusho> Because you're not learning scheme, you're just inputting crap into the interp.
23:26:50 -!- oklofok has joined.
23:27:00 <Slereah> The first y could probably go away
23:39:21 -!- Slereah5 has joined.
23:40:01 <Slereah5> [00:26:52] <Slereah> The first y could probably go away
23:40:01 <Slereah5> [00:27:33] <Slereah> It works no better :o
23:40:09 <tusho> <Slereah> It works no better :o
23:40:09 <tusho> * Slereah5 (n=hax@ANantes-252-1-5-151.w82-126.abo.wanadoo.fr) has joined #esoteric
23:40:25 <tusho> Slereah: I hope you're using the Dr Scheme IDE?
23:40:34 <tusho> And not, like, editing with notepad and running it from the commandline.
23:40:44 <tusho> Slereah: And actually running the scheme inside it?
23:40:46 <tusho> With the Run button?
23:41:31 <tusho> Slereah: What, then?
23:46:38 -!- oklopol has quit (Connection timed out).
23:49:00 -!- Slereah5 has quit (Read error: 104 (Connection reset by peer)).
23:49:15 -!- Slereah has quit (Read error: 110 (Connection timed out)).
23:49:39 -!- Slereah5 has joined.
23:49:48 -!- Slereah5 has changed nick to Slereah.
23:56:49 <Slereah> Them Scheme input is no fun.
23:56:59 <Slereah> Or output, I'm not too sure
23:58:45 <Slereah> Well, it works perfectly with input alone