←2012-01-17 2012-01-18 2012-01-19→ ↑2012 ↑all
00:20:11 -!- cheater has joined.
00:35:29 * Sgeo is losing it
00:35:30 <Sgeo> http://hpaste.org/56573
00:35:47 <Sgeo> (54's join should read joinEvent, which is fixed on my local copy)
00:53:35 <kallisti> Sgeo: isn't mconcat optional?
00:53:48 <kallisti> why not just write mappend?
00:54:28 <Sgeo> kallisti, because the default mconcat would be horribly inefficient
00:54:43 -!- CHeReP has quit (Quit: This computer has gone to sleep).
00:54:55 <kallisti> Sgeo: ah okay. yeah I kind of figured that may be way.
00:55:23 <kallisti> *why
00:55:24 <kallisti> jesus
00:55:26 <kallisti> I'm just typoing
00:55:27 <kallisti> everything
01:00:15 <Sgeo> elliott is alive
01:00:38 <kallisti> well... duh. :P
01:01:10 * kallisti needed a break from elliott, to be honest.
01:01:16 <kallisti> unfortunately now the channel is less alive.
01:01:21 <kallisti> at least for now.
01:01:25 <monqy> it's so lonely
01:01:31 <kallisti> monqy: it's okay I'm here it's okay.
01:15:10 -!- augur has quit (Ping timeout: 240 seconds).
01:15:25 -!- itidus20 has joined.
01:17:26 -!- augur has joined.
01:19:44 -!- itidus20 has quit (Client Quit).
01:20:02 -!- itidus21 has quit (Ping timeout: 276 seconds).
01:26:15 -!- Frooxius has quit (Ping timeout: 240 seconds).
01:33:00 -!- sebbu has quit (Read error: Connection reset by peer).
01:33:27 -!- sebbu has joined.
01:33:28 -!- sebbu has quit (Changing host).
01:33:28 -!- sebbu has joined.
01:40:55 -!- Jafet has quit (Read error: Connection reset by peer).
01:41:20 -!- Jafet has joined.
01:42:14 -!- Jafet has quit (Client Quit).
01:42:58 -!- Jafet has joined.
01:47:34 -!- Jafet has quit (Ping timeout: 252 seconds).
02:04:10 <augur> fizzie: ping
02:27:34 <tswett> > length ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
02:27:35 <lambdabot> 33
02:27:45 <tswett> Huh.
02:27:56 <tswett> I was expecting that number to have more significance.
02:33:40 -!- pikhq_ has joined.
02:35:50 -!- pikhq has quit (Ping timeout: 252 seconds).
02:44:14 * Sgeo reads the Idris tutorial
02:44:23 <Sgeo> tswett, :33
02:44:33 <Sgeo> (Note: Probably not actual significance)
02:45:11 <monqy> hi
02:45:12 <tswett> That... I'll take whatever you can give, I guess.
02:46:14 * Sgeo meows
02:46:55 <monqy> hi
03:17:14 <Sgeo> kallisti, tswett update
03:17:41 <tswett> I congratulate myself on checking MSPA right before you tell me of this.
03:27:36 -!- GreaseMonkey has joined.
03:27:39 -!- GreaseMonkey has quit (Changing host).
03:27:39 -!- GreaseMonkey has joined.
03:44:16 -!- GreaseMonkey has quit (Quit: The Other Game).
03:54:12 <kallisti> @hoogle chr
03:54:12 <lambdabot> Data.Char chr :: Int -> Char
03:54:12 <lambdabot> Text.PrettyPrint.HughesPJ Chr :: Char -> TextDetails
03:54:12 <lambdabot> Text.PrettyPrint Chr :: Char -> TextDetails
03:54:25 <kallisti> @hoogle inRange
03:54:25 <lambdabot> Data.Ix inRange :: Ix a => (a, a) -> a -> Bool
03:54:37 <kallisti> @hoogle Char -> Int -> Char
03:54:37 <lambdabot> Data.Generics.Aliases extB :: (Typeable a, Typeable b) => a -> b -> a
03:54:37 <lambdabot> Prelude const :: a -> b -> a
03:54:37 <lambdabot> Data.Function const :: a -> b -> a
03:56:14 <Sgeo> Why am I so giddiy right bnow
04:03:14 -!- FireFly has quit (Ping timeout: 252 seconds).
04:33:47 -!- variable has quit (Excess Flood).
04:35:22 -!- variable has joined.
04:46:42 <Sgeo> kallisti, tswett update
04:59:26 -!- oerjan has joined.
05:10:31 -!- pikhq has joined.
05:10:45 -!- pikhq_ has quit (Ping timeout: 240 seconds).
05:40:41 <oerjan> `? endofunctor
05:40:44 <HackEgo> endofunctor? ¯\(°_o)/¯
05:41:24 <oerjan> `run echo "Endofunctor are just endomorphisms in the category of categories." > wisdom/endofunctor
05:41:28 <HackEgo> No output.
05:41:30 <oerjan> `? endofunctor
05:41:34 <HackEgo> Endofunctor are just endomorphisms in the category of categories.
05:41:38 <oerjan> eek
05:41:43 <oerjan> `run echo "Endofunctors are just endomorphisms in the category of categories." > wisdom/endofunctor
05:41:43 <kmc> i heard you like category theory
05:41:46 <HackEgo> No output.
05:41:47 <oerjan> `? endofunctor
05:41:51 <HackEgo> Endofunctor are just endomorphisms in the category of categories.
05:41:55 <oerjan> `? endofunctor
05:41:58 <HackEgo> Endofunctors are just endomorphisms in the category of categories.
05:45:45 -!- oerjan has set topic: This topic is no fun any more. | Now in colors! | So, what is blegnian motion, anyway? | http://codu.org/logs/_esoteric/.
05:47:34 -!- Madoka-Kaname has set topic: This topic is no fun any more. | Now in colors! | So, what is blegnian motion, anyway? | | http://codu.org/logs/_esoteric/.
05:47:40 <Madoka-Kaname> No colors? :(
05:47:47 -!- Madoka-Kaname has set topic: This topic is no fun any more. | Now in colors! | So, what is blegnian motion, anyway? | http://codu.org/logs/_esoteric/.
05:48:20 <oerjan> it's the channel which is colors, not the topic.
05:48:23 <oerjan> *in
05:49:04 <oerjan> i would assume they don't want /list to give colors.
05:49:13 <oerjan> even if the channel itself has them.
05:55:08 <oerjan> 18:29:16: <kallisti> C#++'s lambda syntax is strangely similar to STG's
05:55:09 <oerjan> 18:29:48: <kallisti> [list of free variables](list of arguments) -> { expression }
05:55:27 <oerjan> i guess it's due to not doing closure implicitly in either case?
05:56:15 <kallisti> oerjan: yes
05:56:41 <pikhq> Mmm, hot sauce.
05:56:46 <kmc> C#++ o_O?
05:56:55 <oerjan> kmc: IT WAS INEVITABLE
05:56:55 <kmc> is that like Objective C++
05:57:20 <kmc> iirc in C++11 you can ask for implicit closure
05:57:21 <oerjan> yeah, now for objective D#++
05:57:25 <shachaf> kmc: What do you get when you press <Compose> + + on your keyboard?
05:57:32 <kmc> Visual Objective D#++.NET
05:57:35 <kmc> #
05:57:39 <kmc> shachaf, I get #
05:57:41 <shachaf> See? It's an omen.
05:57:44 <kmc> O_O
05:58:08 <oerjan> more proof it's the end times
05:58:34 <oerjan> > chr 666
05:58:35 <lambdabot> '\666'
05:58:40 <oerjan> > var $ chr 666
05:58:41 <lambdabot> Couldn't match expected type `GHC.Base.String'
05:58:42 <lambdabot> against inferred typ...
05:58:50 <oerjan> > var [chr 6669
05:58:52 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
05:58:53 <oerjan> > var [chr 666]
05:58:54 <lambdabot> mueval-core: <stdout>: hPutChar: invalid argument (Invalid or incomplete mu...
05:59:12 <oerjan> clearly the universe tries to censor that.
05:59:34 <kmc> > text $ chr 666
05:59:35 <lambdabot> Couldn't match expected type `GHC.Base.String'
05:59:35 <lambdabot> against inferred typ...
05:59:38 <kmc> > text [chr 666]
05:59:39 <lambdabot> mueval-core: <stdout>: hPutChar: invalid argument (Invalid or incomplete mu...
06:00:03 <kmc> yeah lambdabot's unicode support is broken
06:00:47 <kmc> > generalCategory 'ʚ'
06:00:48 <lambdabot> LowercaseLetter
06:00:50 <oerjan> <kmc> iirc in C++11 you can ask for implicit closure <-- explicitly implicit, check
06:00:53 <kmc> > let ʚ = 3 in ʚ
06:00:54 <lambdabot> 3
06:01:06 <kmc> oerjan, yep
06:04:28 <kmc> std::function<int (int)> add2(int x) { return [&] (y) -> { return x+y; }; }
06:04:33 <kmc> or something like that
06:04:50 <kmc> [&] says "capture everything by reference" which ends up capturing x, but you don't need to name x again
06:04:54 <shachaf> [&] will take a reference, won't it?
06:04:59 <shachaf> You probably want [=] in this case.
06:05:10 <kmc> yeah, I guess that code will not really work
06:05:28 <kmc> i was thinking about the syntactic point and not about whether it actually works :)
06:05:56 <kmc> you can also say like [=, &foo] to mean "capture by value, except foo by reference"
06:06:03 <kallisti> > fmap (\x tail x) [2,3,4]
06:06:04 <lambdabot> <no location info>: parse error on input `)'
06:06:08 <kallisti> oh
06:06:09 <kmc> it's pretty nutso but does make sense with the rest of C++
06:06:35 <shachaf> But why do any of this when you can boost::bind and boost::lambda?!
06:06:59 <kmc> because Real Programmers don't use libraries?
06:07:23 <oerjan> > let x x = x in x 2
06:07:24 <lambdabot> 2
06:07:32 <kmc> there was an IAP course about what's new in C++11 but I already missed it :/
06:11:00 <oerjan> <kallisti> oh look Wikipedia is going down in 11 hours. <-- average geek IQ now temporarily down by 20 points
06:11:26 <shachaf> Easiest way to bypass the Wikipedia blackout: Press Esc before the page is finished loading.
06:11:29 <shachaf> I guess that's only easy if you're using a slow Internet connection like me.
06:11:34 <kmc> wikipedia isn't a "geek" site, it's used by p. much everyone
06:11:53 <oerjan> shachaf: wut that's ridiculous
06:11:56 <kallisti> oerjan: I have a question
06:12:10 <kallisti> newtype T = T [T]
06:12:15 <oerjan> kmc: ok then, average IQ of _everyone_ down by 25 points
06:12:20 <kallisti> why was I laughed at for calling this an ordered multiset. what is a better name for it?
06:12:32 <oerjan> you were laughed at?
06:12:38 <kallisti> yes. ;_;
06:12:47 <kallisti> or well
06:12:49 <kallisti> uh
06:12:54 <oerjan> well, "list"?
06:12:55 <kallisti> ridiculed. there we go.
06:13:07 <pikhq> Yeah, Wikipedia's about as used as Google.
06:13:11 <pikhq> i.e. ubiquitous.
06:13:12 <kallisti> oerjan: yes but it's like how you can construct set theory from just sets
06:13:22 <kallisti> but now it's with lists
06:13:26 <kallisti> which are ordered... and multi. :P
06:13:30 * kallisti is making perfect sense.
06:13:53 <oerjan> kallisti: sure but the difference is in the recursive part, which the terms don't really change
06:14:08 <pikhq> BTW, http://www.google.com
06:14:39 <kmc> looks like google is celebrating the 139th birthday of the guy who invented tape
06:15:54 <shachaf> Brown paper, white paper, sticking together...
06:16:30 <oerjan> shachaf: that's racist!
06:17:16 <shachaf> oerjan: :-(
06:17:23 -!- itidus21 has joined.
06:17:24 <shachaf> Can I compensate for it by typing random Unicode characters?
06:17:42 * oerjan notes that political correctness means you can call someone racist even if they meant the exact opposite
06:18:14 <oerjan> because, NOT SENSITIVE ENOUGH
06:18:57 <oerjan> shachaf: sure as long as they're not _racist_ unicode characters.
06:19:19 <shachaf> 263A WHITE SMILING FACE [☺]
06:19:19 <shachaf> 263B BLACK SMILING FACE [☻]
06:19:21 <oerjan> also don't mix traditional and simplified chinese, that's insensitive
06:19:35 <shachaf> oerjan: How did I do?
06:19:47 <oerjan> shachaf: horrible, yw.
06:20:45 <pikhq> oerjan: Not so much "insensitive" as it is "illegal in the People's Republic of China"
06:21:15 <oerjan> pikhq: in the PRC those are synonyms, hth
06:22:30 <kallisti> oh help wikipedia is down
06:22:31 <kallisti> how speak
06:22:35 <kallisti> what computer is?
06:22:46 <pikhq> Wakaran
06:22:50 <pikhq> Eigo nikui
06:22:53 <kallisti> what wakaran is?
06:22:58 <pikhq> asdf
06:23:03 <pikhq> wakaran asdf be
06:23:21 <kallisti> shachaf: in gnome-terminal the colors are inverted
06:23:26 <kallisti> from what they should be.
06:23:44 <shachaf> kallisti: Nah, it's just that the colours refer to the outlines rather than the filling.
06:23:56 <shachaf> Also it has nothing to do with gnome-terminal specifically, just your color scheme.
06:24:11 <oerjan> kallisti: try conservapedia instead
06:24:22 <oerjan> should be interesting.
06:25:05 <shachaf> Or just press Esc before the blackout overlay loads.
06:26:55 <kallisti> shachaf: hax
06:27:19 <pikhq> Or use https:
06:27:27 * kallisti edits talkpage while wiki is in blackout
06:27:54 <kallisti> oh
06:27:58 <kallisti> no edits
06:27:59 <kmc> shinkansen
06:35:12 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP).
06:44:14 <oerjan> <kallisti> this is a bidirectional loop. it's not entirely clear which direction the projectile is going. intuitively it goes back and forth between the two arrows.
06:44:28 <oerjan> so if a portal moves between the arrows facing one of them, what then
06:44:47 <kallisti> oerjan: there are currently... 4 different rule variations I've come up with.
06:45:07 <kallisti> either the portal is captured, the portal isn't captured (as long as it faces one of the two directions of the loop)
06:45:12 <kallisti> you flip a coin to decide (gross)
06:45:13 <kallisti> or
06:45:24 <kallisti> the direction oscillates between each round of turns
06:45:35 <kallisti> so every set of turns (one for black and one for white) it changes direction
06:45:40 <kallisti> I think I like this one the best.
06:45:50 <oerjan> ök
06:46:08 <kallisti> though it does make it a bit more complicated to keep track of
06:47:09 <kallisti> strategists who like insane rules.
06:48:43 <kallisti> oerjan: also later I fix a particularly bad opening scenario with MORE INSANE RULES
06:48:49 <kallisti> now arrows have a pushy effect(tm)
06:51:54 <oerjan> mhm
06:59:53 <kallisti> oerjan: so you see, by piling on more insane rules, you fix the brokenness of existing insane rules
06:59:56 <kallisti> because everything is insane
07:00:00 <kallisti> it counteracts the insanity.
07:00:11 <kmc> that's the first rule of programming language design
07:00:30 <kmc> <kallisti> now arrows have a pushy effect(tm)
07:00:44 <kmc> i choose to willfully misinterpret all of what you said as an analogy about Haskell Arrows
07:00:58 <shachaf> kmc needs his fix of #haskell
07:07:45 -!- sebbu has quit (Read error: Connection reset by peer).
07:08:06 -!- sebbu has joined.
07:08:06 -!- sebbu has quit (Changing host).
07:08:06 -!- sebbu has joined.
07:13:00 <coppro> nooooooo wikpedia
07:17:00 -!- oerjan has quit (*.net *.split).
07:18:04 -!- oerjan has joined.
07:18:38 <oerjan> splat
07:19:44 <kallisti> > round 22.5
07:19:45 <lambdabot> 22
07:19:48 <kallisti> > round 23.5
07:19:49 <lambdabot> 24
07:19:56 <kallisti> ah. banker's rounding.
07:27:58 <kallisti> hm
07:28:06 <kallisti> I wonder how you would do rounding that is not dependent on base.
07:28:43 <kallisti> I guess you could just do the same thing actually.
07:28:51 <oerjan> banker's rounding isnt'...
07:29:00 <oerjan> *'t
07:29:27 <kallisti> odd based would have the nice property of not having to worry about a midpoint value, I think.
07:29:33 <kallisti> *bases
07:30:17 <kallisti> so you could convert to, say, base 5
07:30:19 <kallisti> round that
07:30:24 <kallisti> and then convert to base 10. :>
07:31:16 <kallisti> ...which is equivalent to banker's rounding, actually.
07:31:29 <oerjan> um that would just mean the real decision happens when you convert to base 5 with limited precision
07:31:52 <oerjan> (.5)_10 = (.2222222222222222...)_5, after all
07:33:32 <kallisti> oh, well you could convert to... base 19
07:33:41 <oerjan> funny guy
07:33:59 <kallisti> it has twice as many digits
07:34:11 <oerjan> obviously it's repeating floor(b/2) for any odd b
07:35:36 <fizzie> augur: I don't see why you're always all "ping"y at 4am or so.
07:59:39 -!- Jafet has joined.
08:07:54 -!- oerjan has quit (Quit: leaving).
08:57:32 -!- monqy has quit (Quit: hello).
10:32:07 -!- ais523 has joined.
10:33:44 -!- ais523 has quit (Remote host closed the connection).
10:34:44 <augur> fizzie: lol
10:35:06 <augur> actually the last two times its 9pm!
11:37:50 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
12:34:57 -!- myndzi has quit (Read error: Connection reset by peer).
12:38:01 -!- myndzi has joined.
12:40:18 -!- pikhq_ has joined.
12:40:45 -!- pikhq has quit (Ping timeout: 272 seconds).
12:43:04 -!- Phantom_Hoover has joined.
12:43:59 <Phantom_Hoover> Heh, looked at Reddit, was surprised it was still up, realised that I had connected nineteen minutes before the blackout.
12:58:36 -!- roper has joined.
13:03:31 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
13:19:00 -!- Phantom_Hoover has joined.
13:40:31 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
13:45:27 <kallisti> huh so they're apparently considering the removal of leap seconds.
13:50:59 <roper> unix was not wrong
13:52:00 <kallisti> ?
13:53:24 <roper> unix has not leap seconds in time_t
13:55:38 <kallisti> well it has seconds, it's just that the leap seconds are unambiguous.
13:55:42 <kallisti> -un
13:59:12 <roper> ambiguous?
13:59:39 <roper> does not consider them when converting to things like 20120118135900
14:01:23 <kmc> which "they"?
14:02:36 <kmc> also, link?
14:04:42 <kmc> they have to do something, they can do bigger corrections less often
14:04:57 <kmc> if you have leap hours then there's time to get a proper party going
14:05:14 <kmc> on the other hand people might find it disconcerting to existing outside the space-time continuum for a full hour
14:08:43 <roper> it is not leap hours , it is daily savings time
14:08:53 <roper> or something
14:18:17 -!- kallisti has quit (Ping timeout: 272 seconds).
14:22:27 <kmc> ?
14:32:11 <roper> well, time still exists. UTC has not that hours, it is a political measure, they say "to save energy"
14:40:08 <kmc> i don't understand
14:40:19 <kmc> DST and leap seconds are completely different; they serve entirely different purposes
14:42:09 <roper> yes. i mean that
14:45:41 -!- Klisz has joined.
15:01:45 -!- Madoka-Kaname has quit (Quit: Hug~♪).
16:04:42 -!- kallisti has joined.
16:04:42 -!- kallisti has quit (Changing host).
16:04:42 -!- kallisti has joined.
16:05:03 <kallisti> what things can const repsent besides a constant function and church encoded true.
16:05:08 <kallisti> *represent
16:15:56 <kallisti> :t intersect
16:15:56 <lambdabot> forall a. (Eq a) => [a] -> [a] -> [a]
16:17:21 <kallisti> > let ls = [[1,2,3],[4,5,6],[7,8,9]]; pairwiseDisjoint = all null $ intersect <$> ls <*> ls
16:17:21 <lambdabot> not an expression: `let ls = [[1,2,3],[4,5,6],[7,8,9]]; pairwiseDisjoint = ...
16:17:39 <kallisti> > let ls = [[1,2,3],[4,5,6],[7,8,9]]; pairwiseDisjoint ls = all null $ intersect <$> ls <*> ls in pairwiseDisjoint ls
16:17:39 <lambdabot> False
16:18:51 <kallisti> > let ls = [[1,2,3],[4,5,6],[7,8,9]]; pairwiseDisjoint ls = intersect <$> ls <*> ls in pairwiseDisjoint ls
16:18:52 <lambdabot> [[1,2,3],[],[],[],[4,5,6],[],[],[],[7,8,9]]
16:18:55 <kallisti> ah
16:20:34 <kallisti> > let ls = [[1,2,3],[4,5,6],[7,8,9]]; pairwiseDisjoint ls = (== ls) . filter (not.null) $ intersect <$> ls <*> ls in pairwiseDisjoint ls
16:20:36 <lambdabot> True
16:20:53 <kallisti> that's probably not correct.
16:26:23 <Sgeo> kallisti, note that there has been an update
16:26:26 <Sgeo> A while ago
16:29:25 <kallisti> Sgeo: yes always updates
16:29:27 <kallisti> section headings for this chapter: 2.1 statements 2.2 the negation of statements 2.3 the disjunction and conjunction of statements 2.4 the implication 2.5 more on implications 2.6 tautologies and contradictions 2.8 logical equivalence 2.9 Quantification
16:29:39 <kallisti> so... not going to learn anything this chapter.
16:31:03 <kallisti> > 11*11
16:31:03 <lambdabot> 121
16:31:26 <kallisti> > 11*12
16:31:27 <lambdabot> 132
16:33:54 <kallisti> :t minus
16:33:55 <lambdabot> Not in scope: `minus'
16:33:59 <kallisti> :t Mminus
16:33:59 <lambdabot> Not in scope: data constructor `Mminus'
16:34:01 <kallisti> :t M.minus
16:34:02 <lambdabot> Couldn't find qualified module.
16:34:05 <kallisti> @hoogle minus
16:34:05 <lambdabot> Foreign.Ptr minusPtr :: Ptr a -> Ptr b -> Int
16:34:05 <lambdabot> Foreign.C.Error throwErrnoIfMinus1 :: Num a => String -> IO a -> IO a
16:34:05 <lambdabot> Foreign.C.Error throwErrnoIfMinus1_ :: Num a => String -> IO a -> IO ()
16:34:39 <kallisti> @hoogle prime
16:34:39 <lambdabot> Data.HashTable prime :: Int32
16:34:40 <lambdabot> package primes
16:34:40 <lambdabot> package optimusprime
16:34:49 <kallisti> lol
16:36:11 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP).
16:37:23 -!- werni has joined.
16:40:58 <werni> hi everyone
16:43:44 <Sgeo> `welcome werni
16:43:50 <Sgeo> ?`welcome werni
16:43:51 <lambdabot> Unknown command, try @list
16:43:56 <HackEgo> werni: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
16:44:52 <kallisti> :t scanl
16:44:52 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
16:45:01 <kallisti> > fix ((0:) . scanl (:) 1)
16:45:02 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
16:45:30 <Deewiant> s/(:)/(+)/
16:45:40 <kallisti> > fix ((0:) . scanl (+) 1)
16:45:41 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
16:45:44 <kallisti> Deewiant: I always forget that one
16:51:18 <kallisti> :t elem
16:51:19 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
16:54:46 -!- Ngevd has joined.
16:54:48 <Ngevd> Hello!
16:56:56 <kallisti> hi
16:57:09 <Ngevd> How are you?
16:57:41 * kallisti thinks the trick to artificial intelligence is to not determine what's true from a learned set of information, but to approximate what is true based on it.
16:57:47 <kallisti> Ngevd: good.
16:57:49 <kallisti> doing math homework.
16:58:09 <Ngevd> :)
16:58:30 <kallisti> prime numbers and powersets and subsets and bleh
16:58:43 -!- KingOfKarlsruhe has joined.
16:58:46 <Ngevd> I'm still on matrices...
16:59:11 <kallisti> never took linear algebra
16:59:24 <kallisti> I went Calc 1 -> Calc 2 -> discrete math -> intro to advanced math
16:59:31 <kallisti> I don't have to take Calc 3 or linear algebra to satisfy my major.
16:59:40 <kallisti> just need those first three classes then any other math elective.
16:59:44 <Ngevd> School chooses modules...
17:00:01 <kallisti> so, realizing that I suck at continuous math, decided to go toward the discrete proofy stuff.
17:00:07 <kallisti> +I
17:00:38 <kallisti> though
17:00:50 <kallisti> I am considering majoring in math as well as CS.
17:00:55 <kallisti> so I may end up taking calc 3.
17:01:16 <Ngevd> What with me being a) British and b) still in High School
17:01:18 <itidus21> to be honest most CS classes are a bit of a waste
17:01:25 <kallisti> itidus21: some of them yes
17:01:28 <kallisti> especially software engineering
17:01:30 <kallisti> uuuuugh.
17:01:37 <kallisti> I am literally learning nothing
17:01:38 <kallisti> and then
17:01:41 <itidus21> i would focus on math
17:01:45 <kallisti> I have to pretend I know things about the nothing that I just learned.
17:01:45 <Ngevd> itidus21 has been in all of them, and look at his knowledge of lambda calculus
17:01:57 <itidus21> i don't have a degree :-s
17:02:07 <itidus21> im complicated
17:02:12 <Ngevd> I don't even have an A-level
17:02:17 <itidus21> maybe my country has a bad educational system
17:02:22 <kallisti> help what does that mean Ngevd.
17:02:33 <Ngevd> We get them aged 16-18
17:02:43 <Ngevd> itidus21, Australia, right?
17:02:48 <itidus21> i would recommend to take the good CS subjects.. the ones which everyone fails :P
17:02:53 <Ngevd> That's where my dad got educated
17:03:01 <Ngevd> I think he did one of those
17:03:02 <kallisti> ...I failed a software engineering class
17:03:08 <itidus21> operating systems and that other one
17:03:09 <itidus21> computer organization
17:03:16 <kallisti> which was probably one of the easier classes I can take
17:03:20 <kallisti> it's just a lot of stupid mindless work
17:03:45 <kallisti> however I got an A in data structures
17:03:51 <kallisti> and every other actual programming class I've taken.
17:03:54 <kallisti> so...
17:04:01 <itidus21> but... i am not a good reference model of a student
17:04:25 <kallisti> I suspect I'll also ace the fuck out of databases
17:04:41 <itidus21> going to a class you know you'll ace won't help you grow, thats the problme
17:04:59 <kallisti> learning about software engineering does not help you grow. it helps you maintain jobs or become a manager.
17:05:03 <kallisti> however
17:05:06 <kallisti> if I take math classes
17:05:10 <kallisti> I will learn things.
17:05:39 <kallisti> I guess learning SWE could be helpful in structuring the /way/ you code. like, time management stuff.
17:05:47 <kallisti> how to be more productive and all that.
17:06:09 <kallisti> but... it's really not a very good field at the moment. it's basically like an extension to management that's focused on technology.
17:06:25 <itidus21> some subjects just don't get taught well
17:06:32 <kallisti> yes.
17:06:41 <kallisti> teaching is difficult
17:06:49 <itidus21> you could learn them outside of university if you really wanted... but you would never get that motivation.. thats the catch
17:07:13 <itidus21> what kind of masochist for example would study data flow diagrams in private
17:07:25 <kallisti> eh those are easy.
17:07:30 <kallisti> even kind of resemble algorithms almost.
17:07:35 <kallisti> the lower level ones
17:07:44 <kallisti> and the structural ones help you visualize a large project.
17:07:53 <kallisti> that's one thing that's not really too objectionable.
17:07:54 <itidus21> hmm
17:08:01 <kallisti> but yes
17:08:05 <kallisti> I wouldn't study them in private. :P
17:08:13 <itidus21> noone would :))
17:08:19 <itidus21> only really twisted sick people
17:09:37 <itidus21> and I still don't understand them
17:10:05 <itidus21> i guess that its one of those things you have to use in practice to figure out
17:11:46 <itidus21> hmmm.... also they often focus on imperative languages in classes
17:12:09 <itidus21> i think its uncommon for CS to teach undergrad functional programming
17:12:40 <itidus21> but this may depend on the school and country
17:13:09 -!- sebbu has quit (Quit: Quitte).
17:14:21 <itidus21> its hard to explain educational systems country to country
17:15:08 <Ngevd> I think my cousin is an Australian primary school teacher, maybe?
17:16:15 <itidus21> in australia it works like this. -1 = kindergarten. 0 = prep(atory) grade. 1 through 6 = primary school. 7 through 12 is secondary college/high school. 11 through 12 is HighSchoolCertificate/VictorianCertificateofEducation
17:16:30 <Ngevd> In the UK it varies place to place
17:16:34 <itidus21> something like that.. i dunno all the state by state differences
17:16:40 <Ngevd> The system I used (which is one of the least common) is:
17:16:48 <Ngevd> R + 1-4 = First School
17:16:57 <Ngevd> 5-8 = middle school
17:17:03 <itidus21> next what happens is people either go on to a degree at a University, or a diploma at a TAFE
17:17:05 <Ngevd> 9 - 11 = High school
17:17:18 <Ngevd> 12 - 13 = 6th form college / high school
17:17:21 <itidus21> and from the diploma it can sometimes lead into a degree at a university
17:17:39 <itidus21> tafe is more hands on, much cheaper
17:17:39 <Ngevd> Beyond, uni
17:18:35 <itidus21> although its cheaper, tafe can sometimes provide a richer education :D
17:18:54 <itidus21> its very cool really
17:19:05 -!- Klisz has joined.
17:19:27 <itidus21> its sort of the left-wing side of tertiary
17:20:57 -!- Gregor has set topic: #esoteric is closed to Americans for SOPA blackout day | Hey, American, I saw you talking, SHUT UP | http://codu.org/logs/_esoteric/.
17:21:09 -!- Taneb has joined.
17:21:47 <itidus21> i learned data structures at tafe.. and then when i went to uni i got hd cos my first teacher was really good
17:22:29 <itidus21> he drew it all on the whiteboard as boxes and arrows
17:22:42 -!- werni has left ("Verlassend").
17:23:41 <itidus21> and at uni, my teacher of computer organization and operating systems was cool but those classes were too tough for me.
17:24:06 <itidus21> could be that i was very distracted in life at the time
17:25:04 <itidus21> those were the only 2 classes which felt like serious CS.. in comp org we had to write an assembler or a linker for one assignment
17:25:22 -!- Ngevd has quit (Ping timeout: 252 seconds).
17:25:31 <itidus21> my thing wouldn't compile for him.. was kinda distressing
17:26:03 <itidus21> and i remember caches were too much for me
17:26:47 <itidus21> how complex could a cache possibly be. i would have thought beforehand
17:29:18 <Taneb> I think I have shape-taste synesthasia
17:29:56 <itidus21> wow!
17:30:00 <itidus21> really?
17:30:29 <Taneb> Maybe
17:30:31 <Taneb> I can't be sure
17:30:39 <Taneb> But fizzy water tastes round
17:30:40 <itidus21> heh
17:30:51 <Taneb> Strawberries taste like stars
17:32:20 <itidus21> if you mix them do you get rounded stars?
17:32:28 <Taneb> Never tried
17:32:45 <Taneb> I think I would get a circle and a star on-top of eachother
17:32:51 <Taneb> Like captain America's shield?
17:32:56 <Gregor> I think if you mix strawberries and sparkling water you're most likely to get another taste of your last meal.
17:33:11 <itidus21> Taneb: ah i get it :)
17:33:21 <itidus21> a star enclosed by a circle
17:33:39 <Taneb> But yeah, different brands of fizzy water taste different
17:33:54 <Taneb> Tesco Value is more... flat? than Buxton's
17:34:08 <itidus21> oh they're 3d?
17:34:12 <Taneb> I think they're 3D for some things
17:34:32 <itidus21> ahh
17:34:46 <itidus21> variable d
17:34:57 <kallisti> Taneb: what does bacon taste like
17:35:08 <Taneb> Don't really eat much bacon
17:36:07 <kallisti> I bet it tastes like a Great rhombidodecahedron
17:37:56 <kallisti> or maybe a nonconvex great rhombicosidodecahedron
17:38:22 <Taneb> I also get headaches when I see sine curves
17:38:33 <kallisti> wat
17:38:48 <kallisti> http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Sine_and_Cosine.svg/400px-Sine_and_Cosine.svg.png
17:39:07 <kallisti> Taneb: click it. do it.
17:39:31 <Taneb> The background helps prevent them
17:39:47 <Taneb> I don't really get serious headaches at all
17:44:10 -!- erkin has joined.
17:53:36 -!- sebbu has joined.
17:53:37 -!- sebbu has quit (Changing host).
17:53:37 -!- sebbu has joined.
17:54:40 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.88 [Firefox 9.0.1/20111220165912]).
17:57:05 -!- Vorpal has joined.
18:07:16 -!- ais523 has joined.
18:10:16 -!- erkin has left ("May your dreams last longer than your night.").
18:14:16 -!- Taneb has quit (Ping timeout: 240 seconds).
18:30:03 -!- Ngevd has joined.
18:32:40 -!- azaq23 has joined.
18:32:51 -!- azaq23 has quit (Max SendQ exceeded).
18:33:28 -!- azaq23 has joined.
18:41:59 <Ngevd> I think Bit is a LBA
18:42:34 -!- Phantom_Hoover has joined.
18:42:39 -!- Phantom_Hoover has quit (Changing host).
18:42:39 -!- Phantom_Hoover has joined.
18:50:04 -!- kallisti has quit (Ping timeout: 255 seconds).
19:12:11 <fizzie> Hey, it's the snowtree season here finally. It's been really unsnowtreey so far.
19:17:45 -!- cheater has quit (Ping timeout: 276 seconds).
19:25:57 <ais523> <kerio> ais523: btw, i found another two ssh fanboys :D
19:26:38 <ais523> oh dear
19:32:59 <fizzie> http://users.ics.tkk.fi/htkallas/snowtree.jpg <- snowtree season.
19:33:52 -!- Ngevd has quit (Ping timeout: 252 seconds).
19:38:20 <fizzie> What's an "ssh fanboy" like? And is it related to the protocol, or the company, or some implementation?
19:39:50 <ais523> fizzie: the entire ssh-related ecosystem, I think
19:40:10 <ais523> and people who, say, remove all methods but ssh of accessing a public AceHack server
19:40:39 <fizzie> Ah.
19:41:02 <fizzie> Well, it's important that nethack sessions stay safe from prying eyes.
19:41:24 <fizzie> Does it do support SSH? I didn't think e.g. NAO did.
19:41:29 <ais523> NAO doesn't
19:41:40 <ais523> acehack.eu (the server in question) supports only ssh; acehack.us supports both ssh and telnet
19:42:55 <fizzie> It is not a bad idea to do both, I've been in places with outgoing telnet blocked.
19:46:16 <ais523> indeed
19:46:30 <ais523> but having telnet on your server and then removing it because you're an ssh fanboy is a symptom of ssh fanboyism
19:47:26 <ais523> suggesting that every program that defines a network access protocol should base it on ssh is an even stronger one
19:48:33 <fizzie> I was imagining people camped outside SSH Communications's office on the off chance they might get to see a glance of Tatu Ylönen.
19:49:53 <ais523> heh
19:51:10 -!- FireFly has quit (Changing host).
19:52:55 <itidus21> pondering about I/O. it is perhaps about inter-system communication. . o O ( must system a must modify itself to handle input from system b? ) or perhaps special systems exist to provide a common interface between systems
19:53:10 <itidus21> i think i overused the word systems
19:54:34 <itidus21> im super confused. back to SSH
19:58:30 -!- FireFly has quit (Quit: ZNC - http://znc.in).
20:44:41 -!- monqy has joined.
20:50:21 -!- quintopia has quit (Remote host closed the connection).
21:07:09 -!- kallisti has joined.
21:07:09 -!- kallisti has quit (Changing host).
21:07:09 -!- kallisti has joined.
21:11:01 -!- kallisti_ has joined.
21:13:56 -!- kallisti_ has quit (Client Quit).
21:22:40 -!- GreaseMonkey has joined.
21:31:06 <kallisti> Forth is a structured, imperative, reflective, concatenative, extensible, stack-based computer programming language and programming environment.
21:31:14 <kallisti> concatenative, eh?
21:31:51 <kallisti> I wonder if Haskell is listed as concatenative.
21:31:59 <kallisti> it seems to fit the definition
21:34:53 -!- Frooxius has joined.
21:49:12 -!- augur has quit (Ping timeout: 240 seconds).
21:52:12 <Sgeo> I can't tell if this is part of the SOPA blackout or not
21:52:12 <Sgeo> http://www.stationv3.com/d/20120118.html
21:52:39 <Sgeo> I can only assume so
21:52:43 <Sgeo> Although not much of a blackout
21:53:59 -!- augur has joined.
21:58:58 -!- Jafet has quit (Quit: Leaving.).
22:06:37 <fizzie> Silence in the Darkness of.
22:14:06 -!- GreaseMonkey has quit (Remote host closed the connection).
22:15:51 -!- cswords__ has joined.
22:17:01 -!- GreaseMonkey has joined.
22:17:01 -!- GreaseMonkey has quit (Changing host).
22:17:01 -!- GreaseMonkey has joined.
22:18:45 -!- Phantom_Hoover has quit (Quit: Leaving).
22:19:35 -!- cswords_ has quit (Ping timeout: 252 seconds).
22:21:21 -!- aloril has quit (Ping timeout: 244 seconds).
22:26:10 -!- Vorpal has quit (Read error: Operation timed out).
22:29:35 <kallisti> it would be cool if you could overwrite free variables in Haskell.
22:29:51 <kallisti> so then a closure basically becomes a kind of record structure.
22:29:58 <Sgeo> > let a = 5 in let a = 6 in a
22:29:59 <lambdabot> 6
22:30:15 <kallisti> that's not quite what I meant
22:30:37 <kallisti> basically something like implicit parameters.
22:31:58 -!- Phantom_Hoover has joined.
22:33:35 -!- aloril has joined.
22:38:41 -!- roper has quit (Quit: Abandonando).
22:39:53 -!- oerjan has joined.
22:44:23 -!- Patashu has joined.
22:47:44 <oerjan> <kallisti> what things can const repsent besides a constant function and church encoded true.
22:48:06 <oerjan> church encoded any argumentless first constructor of two...
22:48:09 <oerjan> e.g. Nothing
22:48:29 <oerjan> or []
22:49:28 <kallisti> oerjan: makes sense.
22:52:42 <olsner> neither the question or the answer makes sense to me, but whatever floats your respective boats
22:53:19 <oerjan> olsner: when representing algebraic datatypes in pure lambda calculus, you use church encoding
22:53:48 <olsner> yes, I'm with you thus far
22:54:10 -!- Phantom_Hoover has quit (Quit: Leaving).
22:54:12 * oerjan suddenly realizes he cannot lookup which variant is which on wikipedia
22:54:54 <itidus21> it's best if you don't cheat and look up a wiki mirror
22:55:01 <itidus21> :P
22:55:12 <itidus21> you will have more fun that way
22:55:32 <olsner> haven't you already disabled javascript in wikipedia's site-specific preferences in your browser?
22:56:12 <oerjan> well there are two variants, one which implements constructors shallowly and one which does a full deep fold over the entire data structure. i think church is the latter. (only that makes sense for church numerals, anyway)
22:56:17 <olsner> you're, like... SOPA blackout noobs :)
22:56:57 <oerjan> but for argumentless constructors there is no difference.
22:56:59 <ais523> olsner: I have JS disabled for most sites but enabled for Wikipedia
22:57:06 <ais523> but then, I haven't needed to look something up there today
22:58:02 <Sgeo> ?banner=none
22:58:03 <lambdabot> Unknown command, try @list
22:58:05 <Sgeo> At the end of any URL
22:58:08 <Sgeo> (almost)
22:58:25 <oerjan> in any case a data structure with n constructors is implemented as a function taking n arguments, one for each constructor. and if the constructor no. i to be used itself takes no arguments, the function just returns the ith argument.
22:59:10 <olsner> hmm, doesn't look like the difference has a specific name ... wikipedia just give the example of coding a list as a church pair or as a right fold
22:59:26 <oerjan> which means that all of True (well assuming that's first, which isn't the case in haskell but makes sense for if-then-else), Nothing and [] get implemented as \x y -> y, i.e. const
22:59:57 <oerjan> olsner: hm i thought i saw a different name once
23:00:38 <olsner> http://en.wikipedia.org/wiki/Mogensen–Scott_encoding perhaps?
23:01:32 <oerjan> with full folding, a list l becomes implemented as \nil cons -> foldr cons nil l, but shallowly (x:xs) instead becomes \nil cons -> cons x xs
23:01:42 <oerjan> olsner: rings a bell
23:02:37 <olsner> too tired/lazy to figure out if that page describes something like a generalization of folds or is just a different church(ish) encoding
23:04:17 <oerjan> wut
23:05:32 <oerjan> (that was to ?banner=none)
23:06:45 -!- Ngevd has joined.
23:07:20 <Ngevd> Hello!
23:07:20 <Ngevd> kallisti, I've been thinking about Portal Chess
23:07:32 * oerjan decides to use the cheat so he can see today's page
23:07:33 <Ngevd> White's DCannon opening isn't worth it
23:08:17 <oerjan> i suppose a blackout which geeks can avoid still hits basically all _intended_ targets :P
23:08:48 <ais523> oerjan: indeed
23:08:52 <Ngevd> oerjan, is there an easier way to do it than blocking Javascript for the site?
23:09:14 <oerjan> Ngevd: <Sgeo> ?banner=none <Sgeo> At the end of any URL <Sgeo> (almost)
23:09:24 -!- aloril has quit (Ping timeout: 244 seconds).
23:09:24 <Ngevd> Hmm
23:10:14 <fizzie> Or the mobile site.
23:10:34 <fizzie> It's got a 'm.' somewhere in the URL.
23:11:05 <fizzie> en.m.wikipedia.org, I think.
23:11:12 <kallisti> Ngevd: yes indeed I realized that as well.
23:11:15 <fizzie> Of course it looks a bit different.
23:11:35 <kallisti> Ngevd: well
23:11:38 <kallisti> Ngevd: kind of
23:11:42 <kallisti> it's not worth it to capture the pawn
23:11:43 <kallisti> however
23:11:48 <kallisti> it blocks in the arrow
23:11:54 <kallisti> unless you move the pawn in front of the portal
23:11:57 <kallisti> which I guess is fine.
23:12:14 -!- Madoka-Kaname has joined.
23:16:08 <Ngevd> What do Prisms do?
23:17:01 -!- ais523 has quit (Remote host closed the connection).
23:18:54 <Ngevd> kallisti: ^^^
23:21:16 -!- kallisti has quit (Read error: Connection reset by peer).
23:21:53 -!- aloril has joined.
23:21:57 -!- kallisti has joined.
23:25:26 <Ngevd> kallisti, what do prisms do?
23:25:56 <Ngevd> @ping
23:25:57 <lambdabot> pong
23:27:17 <kallisti> Ngevd: they're directionless arrows. when a /friendly/ projectile comes into contact with a prism the owner can choose which direction the projectile redirects.
23:27:23 <kallisti> from that point the projectile is "focused"
23:27:35 <kallisti> and will capture any arrows it crosses.
23:28:01 <kallisti> however, enemy projectiles will capture prisms. so I did lie previously, there is a concept of ownership of projectiles.
23:28:04 <kallisti> but only for prisms.
23:28:16 <kallisti> currently that's the... best idea I have for a queen piece. I don't know how I feel about it.
23:30:06 <Ngevd> Here's a quick, dodgily timed animation about my thoughts of the DCannon headshot-across-the-map gambit: http://i1239.photobucket.com/albums/ff508/Taneb/pchesslhcgambit-1.gif
23:30:43 <kallisti> Ngevd: yes
23:30:45 <kallisti> that's what would happen
23:30:48 -!- Ngevd has quit (Read error: Connection reset by peer).
23:31:16 -!- Ngevd has joined.
23:31:30 <kallisti> I didn't think it through earlier. however that's a good opening move for other reasons. it gives you a fair degree of map control. you can place an arrow within the cannons path and gain a better angle
23:31:52 <kallisti> just don't capture the pawn. and be ready to defend against your opponent mirroring you
23:32:13 <Ngevd> Here's a quick, dodgily timed animation about my thoughts of the DCannon headshot-across-the-map gambit: http://i1239.photobucket.com/albums/ff508/Taneb/pchesslhcgambit-1.gif
23:33:32 <Sgeo> DCannon?
23:33:37 <oerjan> best gambit name
23:33:39 <Sgeo> Oh, mixed up where I was
23:33:46 <Sgeo> Thought I was in #MSPA
23:34:03 <Ngevd> I think Portal Chess is quite balanced
23:34:03 <Ngevd> The Prisms need work, though
23:34:03 <Ngevd> Perhaps they split projectiles?
23:35:59 <Ngevd> An easy mistake to make, Sgeo
23:36:02 <kallisti> 18:29 < Ngevd> Here's a quick, dodgily timed animation about my thoughts of the DCannon headshot-across-the-map gambit:
23:36:05 <kallisti> http://i1239.photobucket.com/albums/ff508/Taneb/pchesslhcgambit-1.gif
23:36:08 <kallisti> 18:30 < kallisti> Ngevd: yes
23:36:10 <kallisti> 18:30 < kallisti> that's what would happen
23:36:26 <kallisti> Ngevd: split them how?
23:36:26 <Ngevd> I lagged out, didn't know what I had sent
23:36:37 <kallisti> Ngevd: you mean give them a direction and then have them split at an angle of some kind?
23:36:53 <kallisti> well
23:36:54 <Ngevd> Yes?
23:37:05 <kallisti> the main reason I made prisms kind of gross in terms of rules is because
23:37:06 <kallisti> currently
23:37:11 <kallisti> projectiles cannot kill arrows.
23:37:25 <kallisti> without that prism rule.
23:37:36 <kallisti> this makes prisms an important piece... at the same time
23:37:42 -!- Ngevd has quit (Read error: Connection reset by peer).
23:37:51 <kallisti> being vulnerable to enemy projectiles makes it easy and costly to lose
23:37:52 -!- Ngevd has joined.
23:37:58 <kallisti> it very much works like a queen.
23:38:06 <kallisti> er..... see logs. :P
23:38:15 <kallisti> you just pull up stalker mode since you're dc'ing so much.
23:38:18 <kallisti> +should
23:38:40 -!- Ngevd has quit (Read error: Connection reset by peer).
23:46:43 * kallisti thinks Data.List should have a withWords that preserves whitespace.
23:47:23 <kallisti> rip Ngevd
23:51:13 <oerjan> groupBy ((==)`on`isSPace) "testing \t\n1 2 \n3\n"
23:51:19 <oerjan> > groupBy ((==)`on`isSPace) "testing \t\n1 2 \n3\n"
23:51:20 <lambdabot> Not in scope: `isSPace'
23:51:24 <oerjan> eep
23:51:28 <oerjan> > groupBy ((==)`on`isSpace) "testing \t\n1 2 \n3\n"
23:51:29 <lambdabot> ["testing"," \t\n","1"," ","2"," \n","3","\n"]
23:51:59 <kallisti> oerjan: oooooh groupBy
23:52:03 <kallisti> I don't think much about that.
23:52:09 <kallisti> forgot about it.
23:52:26 <kallisti> oerjan: yes that's a possibility, what I was considering though
23:52:36 <kallisti> is that withWords f = unwords . f . words
23:52:36 <kallisti> except
23:52:40 <oerjan> it's a little tricky since you can have space first or not
23:52:42 <kallisti> it preserves whitespace, which unwords does not.
23:52:55 <kallisti> because usually you want to ignore the space
23:53:00 <kallisti> and process the words
23:53:01 <oerjan> kallisti: hm that would require it to preserve each word
23:53:09 <oerjan> that is, total length
23:53:17 <kallisti> it would?
23:53:35 <oerjan> if f changes the length of the list, what then?
23:53:49 <kallisti> er I mean
23:53:56 <kallisti> withWords f = unwords . map f . words
23:53:58 <kallisti> that's better
23:54:02 <oerjan> right
23:54:25 <kallisti> which is a bit more limited
23:54:28 <kallisti> can't do things like:
23:54:34 <kallisti> > unwords . reverse . words $ "what is this I don't even"
23:54:35 <lambdabot> "even don't I this is what"
23:55:22 <kallisti> in that case groupby is probably a better solution. you could add some kind of rule so that you can always determine which elements are spaces and which aren't
23:55:31 <kallisti> by adding an empty string at the beginning on one of the cases.
←2012-01-17 2012-01-18 2012-01-19→ ↑2012 ↑all