--- Log opened Fri Jun 01 00:00:39 2012 |
00:09 | <&jerith> | celticminstrel: Because Xcode. |
00:25 | | Derakon[AFK] is now known as Derakon |
01:11 | | VV is now known as Vash |
01:11 | | mode/#code [+o Vash] by ChanServ |
01:18 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
01:18 | | mode/#code [+o himi] by ChanServ |
01:18 | < celticminstrel> | Bah! |
01:21 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I <3Lovecraft<3 Vorn!] |
01:23 | < celticminstrel> | It doesn't show enums either. :/ |
01:23 | < celticminstrel> | And yet, it does show macros. |
01:28 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
01:28 | | mode/#code [+o Vash] by ChanServ |
01:29 | < celticminstrel> | ...and it seems to only support //TODO: and #pragma mark outside of functions. |
01:29 | < celticminstrel> | Which is okay for the latter, but awful for the former. |
01:39 | < io|meh> | //TODO: Comment this |
01:40 | <&McMartin> | <3 |
01:45 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
01:54 | | * Vornicus fiddles. Okay, the range seive works, but can range-seive with a non-1 stride be done? |
02:02 | <~Vornicus> | ...yes. |
02:03 | <~Vornicus> | I need to do Chinese Remainder Theorem to figure out the start point, but that's not a problem. |
02:16 | | Attilla [Obsolete@Nightstar-76b43344.as43234.net] has quit [Ping timeout: 121 seconds] |
02:18 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has left #code [] |
02:18 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
02:18 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has left #code [] |
02:18 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
02:18 | < celticminstrel> | Argh, I did that again. |
02:19 | | * Vornicus patpats celmin. |
02:20 | < celticminstrel> | It's an occasional artifact of having Chrome and Colloquy open on different screens. |
02:30 | | Kindamoody[zZz] is now known as Kindamoody |
02:41 | | Kindamoody [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has quit [Client closed the connection] |
02:42 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has joined #code |
02:42 | | mode/#code [+o Kindamoody|out] by ChanServ |
02:42 | | Kindamoody|out is now known as Kindamoody |
02:44 | | Kindamoody [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has quit [Client closed the connection] |
02:44 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has joined #code |
02:45 | | mode/#code [+o Kindamoody|out] by ChanServ |
02:45 | | Kindamoody|out is now known as Kindamoody |
03:07 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Reboot] |
03:09 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
03:15 | < celticminstrel> | Xcode does give nice notification of merge conflicts... |
03:31 | | io|meh is now known as iospace |
03:32 | < Noah> | http://0x10c.com/doc/dcpu-16.txt |
03:32 | < Noah> | have we heard about this? |
03:33 | <@Tamber> | A few times, I think~ |
03:33 | < Noah> | A CPU in a game, interesting |
03:33 | <&McMartin> | Woo, Omega Tank >_> |
03:34 | <@Tamber> | I should beat up my tiny CPU 'simulator' a little more until it's slightly less crappy, eventually. |
03:36 | <@Tamber> | Then again, beating the crap out of it wouldn't leave much. |
03:44 | < Rhamphoryncus> | "If you are familiar with C, () is somewhat similar to void." >.< |
03:45 | <@ToxicFrog> | what |
03:45 | < Rhamphoryncus> | http://book.realworldhaskell.org/read/types-and-functions.html#x_ed |
03:47 | < Rhamphoryncus> | I find the lack of a 1-tuple interesting. In python that'd be awkward, but with static typing.. |
03:48 | <@ToxicFrog> | except it really isn't similar to void at all |
03:48 | <@ToxicFrog> | void being a valueless type |
03:49 | < Rhamphoryncus> | It's only like void in the way void is like NULL |
03:49 | <@ToxicFrog> | It's similar only in the sense that functions that return "no value" return unit |
03:50 | <@ToxicFrog> | In other respects it's closer to NULL |
03:50 | < Rhamphoryncus> | yeah |
03:50 | <@ToxicFrog> | (is unit also a type, or is it just a value? My haskell is rusty) |
03:50 | < Rhamphoryncus> | ()? It's a value |
03:57 | < Rhamphoryncus> | I'm curious what () has to do with tuples, since tuples aren't arbitrary containers like python (no 1-tuples), and empty is a special case that can't be used like you normally would |
03:58 | <&McMartin> | () is a 0-tuple. |
03:58 | <@ToxicFrog> | Probably just that it's written the same way as a tuple with 0 elements would be |
03:58 | <&McMartin> | Yeah. |
03:58 | < Rhamphoryncus> | It's categorized as such but how does it behave as a tuple? |
03:58 | <&McMartin> | Its type compatibility rules are equivalent to those for n-tuples. |
03:58 | <@ToxicFrog> | Although, does it- yes |
03:59 | <&McMartin> | If arity is the same and they type-match piecewise, it matches. |
03:59 | <&McMartin> | If you like, this also means that *every non-tuple value is secretly a 1-tuple*. |
03:59 | < Rhamphoryncus> | I wonder if it's actually the 1-tuple that's the special case, with 0-tuple behaving behaving more as if tuples were arbitrary containers? |
03:59 | < Rhamphoryncus> | ^^ |
04:00 | <&McMartin> | Tuples aren't really abitrary containers, though. |
04:00 | <&McMartin> | The length is part of the type. |
04:00 | <&McMartin> | And each component's type is part of the type. |
04:00 | < Rhamphoryncus> | I still call that a container |
04:00 | < Rhamphoryncus> | It's more than one object and they're contained within it |
04:00 | <&McMartin> | Mmm. Well, OK. |
04:01 | <&McMartin> | They don't admit any of the typical collection operations, though. |
04:02 | <&McMartin> | Though I suppose that thanks to structural typing Haskell already doesn't have any equivalent to java.util.Collection. |
04:03 | <~Vornicus> | oh, rham is here. re: scale issues, I did get around to measuring Twilight Princess: from Link's house to the bottom of the stairs at Castle Town South, it's 3:30 on foot and 2:15 on horseback, both without using dash. |
04:03 | < Rhamphoryncus> | Yeah, they're clearly very specialized in haskell |
04:03 | < Rhamphoryncus> | In python there's often confusion as to whether you use a tuple or list. In haskell a tuple is "no, you use it for *exactly* this, otherwise use a list." |
04:04 | < Rhamphoryncus> | Vornicus: *nods* |
04:04 | < Rhamphoryncus> | http://book.realworldhaskell.org/read/types-and-functions.html#x_X3 "If we were to leave out the parentheses, the offending expression would be similar to passing three arguments to head." |
04:04 | < Rhamphoryncus> | Wouldn't a tuple be haskell's equivalent of 3 arguments? |
04:05 | <&McMartin> | one moment |
04:05 | < Rhamphoryncus> | Without parenthesis it'd be "do the call, then call the return value, then call that return value" |
04:05 | <&McMartin> | It's one way to do it, but it's not the usual way to do it. |
04:05 | <&McMartin> | That's right |
04:05 | <&McMartin> | And that's the more common way, because it lets you do partial evaluation trivially. |
04:05 | < Rhamphoryncus> | Yeah, I was just thinking that |
04:05 | < Rhamphoryncus> | currying, right? |
04:05 | <&McMartin> | Right. |
04:05 | <&McMartin> | There's lots of syntactic sugar to hide that that's what you're doing, to make it nearly invisible |
04:06 | <&McMartin> | This is one of those things that once your brain wraps around it, it weeps bitterly whenever you lose access to it. |
04:06 | < Rhamphoryncus> | heh |
04:06 | | gruber [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
04:07 | < Rhamphoryncus> | I found partial evaluation to be counter-productive in python. In haskell my instinct is the first benefit is just less clutter to not having parenthesis |
04:07 | <~Vornicus> | Which is to say that if someone in Ordona really wanted to, they could have lunch in Castle Town and spend less time traveling and waiting for service than cooking. |
04:07 | < Rhamphoryncus> | Which leaves open easy partial evaluation when you do need it, even if proportionally it's fairly rare |
04:07 | <&McMartin> | Rham: It's really handy with things like map and filter. |
04:07 | < Rhamphoryncus> | Vornicus: hehe |
04:07 | <&McMartin> | Since the only real way to do those in Python is with list comprehensions, it's less critical there. |
04:08 | | * Vornicus has a diabloish growing in his head. |
04:08 | <&McMartin> | ML *only* has map and filter so currying is *utterly critical* there. |
04:08 | < Rhamphoryncus> | McMartin: funny that :) |
04:08 | <&McMartin> | Lisp doesn't have it and so it's bulky and sad-making, though Clojure has an equivalent to boost::bind which takes most of the pain away. |
04:09 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
04:09 | <&McMartin> | Currying also tends to be an important part of point-free function definitions, which I find unnaturally fun. |
04:11 | < Rhamphoryncus> | which are? |
04:11 | <&McMartin> | (Also the only place where map and filter are better than list comps) |
04:11 | <&McMartin> | Defining a function in terms of composition alone. The "point" you're free of is the argument |
04:11 | <&McMartin> | One moment, firing up ghci to test my example before I give it~ |
04:13 | <&McMartin> | OK |
04:13 | <&McMartin> | Sum of all even numbers in a list |
04:13 | <&McMartin> | let pf = (foldr (+) 0) . (filter even) |
04:13 | <&McMartin> | pf [1..5] -> 6 |
04:15 | < Rhamphoryncus> | hmm.. (filter even) gets evaluated first, then its result is the final argument to foldr? |
04:16 | <&McMartin> | Not sure if you hit these yet, but . is the composition operator and $ is the application operator (it's equivalent to no punctuation at all but binds at a lower priority) |
04:16 | < Rhamphoryncus> | Haven't |
04:16 | <&McMartin> | Ok |
04:16 | < Rhamphoryncus> | What $? :) |
04:16 | < Rhamphoryncus> | But I think I understand what . is doing |
04:16 | <&McMartin> | As you may have noticed, if you try to do something like putStrln "Hello " ++ "world" it doesn't work |
04:17 | <&McMartin> | f . g <=> \x -> f (g x) |
04:17 | < Rhamphoryncus> | That went over my head |
04:17 | <&McMartin> | These two statements are equivalent: |
04:17 | < Rhamphoryncus> | For putStrLn I'd throw parenthesis on it |
04:17 | <&McMartin> | Yeah, that gets bulky when you chain things |
04:17 | < Rhamphoryncus> | I bet |
04:17 | <&McMartin> | putStrLn $ "Hello " ++ "world" |
04:18 | <&McMartin> | Works |
04:18 | <&McMartin> | Basically it's for dicking with priority |
04:18 | < Rhamphoryncus> | Thought you'd say that :) |
04:18 | <&McMartin> | As for the other thing |
04:18 | <&McMartin> | these two statements are equivalent |
04:18 | <&McMartin> | let h x = f (g x) |
04:18 | <&McMartin> | let h x = (f . g) x |
04:18 | <&McMartin> | And, of course, this third, the point-free form, is equivalent to both |
04:18 | <&McMartin> | let h = f . g |
04:19 | <&McMartin> | let h x = f $ g x |
04:19 | <&McMartin> | Is also the same |
04:19 | <&McMartin> | But "let h = f $ g" is *not* the same. |
04:19 | <&McMartin> | In all the previous examples, f takes the result of g |
04:20 | <&McMartin> | In f $ g, f takes g itself. |
04:20 | < Rhamphoryncus> | Nothing is making g be called |
04:20 | <&McMartin> | Well. |
04:20 | <&McMartin> | (.) is itself a function of two args, both functions~ |
04:20 | <&McMartin> | Prelude> :t (.) |
04:20 | <&McMartin> | (.) :: (b -> c) -> (a -> b) -> a -> c |
04:21 | <&McMartin> | (surrounding it with parens is how you make infix stuff prefix, if that hasn't been covered) |
04:21 | < Rhamphoryncus> | Briefly. |
04:21 | < Rhamphoryncus> | (+) and such |
04:21 | <&McMartin> | Though thanks to - I think it calls them slices - you can do currying on infix functions in the natural way |
04:21 | < Rhamphoryncus> | heh |
04:22 | < Rhamphoryncus> | You're melting my brain |
04:22 | <&McMartin> | (2+) and (+2) both work, and you can infix up prefix functions too |
04:22 | <&McMartin> | (`mod` 5) does exactly what it says on the tin. |
04:23 | <&McMartin> | Subtraction is a little tricky and I forget how you do that one~ |
04:23 | <&McMartin> | (-2) is not the function that subtracts 2 from its argument, though (2-) does correctly return the function that subtracts its argument from 2. |
04:23 | <&McMartin> | (-2) is, of course, -2. |
04:24 | <&McMartin> | The Clojure for (`mod` 5) is #(mod % 5). |
04:25 | < Rhamphoryncus> | Hmm. `` lets you use functions (which don't have symbols in the name) as infix? |
04:25 | < Rhamphoryncus> | Yeah, mod defaults to prefix |
04:26 | <&McMartin> | Yup. |
04:27 | <&McMartin> | Haskell doesn't allow you define priorities between them though. Standard ML does, which means I can now quote my favorite line in any language tutorial ever |
04:27 | <&McMartin> | "Changing the infix status of esdtablished operators leads to madness." |
04:28 | < Rhamphoryncus> | lol |
04:31 | < Rhamphoryncus> | add a b = a + b |
04:31 | < Rhamphoryncus> | So it actually defaults to partial evaluation? |
04:32 | <&McMartin> | Yeah, everything in the standard library is curried. |
04:32 | <&McMartin> | There are "curry" and "uncurry" functions for turning two-argument functions to and from pair-based functions. |
04:32 | <&McMartin> | So "uncurry add" is a function that takes (a, b) and returns a+b. |
04:32 | | * Rhamphoryncus nods |
04:33 | <&McMartin> | Handy with zip, which works exactly as in Python. |
04:33 | < Rhamphoryncus> | Wonder where python got it ;) |
04:42 | | * McMartin starts pulling down the latest Windows SDK. =/ |
04:42 | <&McMartin> | I guess I can go work on Ophis while that happens. |
04:44 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds] |
04:44 | < Noah> | Windows SDK? |
04:45 | <&McMartin> | Yeah, telecommuting stuff, basically. |
04:45 | <&McMartin> | Some stuff I need to get done but I'd kind of like to test it locally before committing it. =P |
05:05 | <&McMartin> | Or, it could just not work worth a damn. |
05:05 | | franny [fran@Nightstar-e67f9d08.com] has joined #code |
05:10 | < iospace> | comitting untested code? |
05:10 | < iospace> | BLASPHEMER |
05:14 | <&McMartin> | Hence why I need to install the SDK, so I can compile and test it. |
05:38 | < Noah> | nah, write once and run away |
05:46 | | iospace is now known as io|t-2 |
05:50 | | io|t-2 is now known as iospacedout |
05:55 | | Kindamoody is now known as Kindamoody|out |
06:36 | | Derakon is now known as Derakon[AFK] |
07:07 | | You're now known as TheWatcher |
07:43 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
07:43 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds] |
07:59 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
08:10 | | You're now known as TheWatcher[afk] |
09:48 | | You're now known as TheWatcher |
10:11 | | maoranma [nbarr@Nightstar-f93cf469.pools.spcsdns.net] has joined #code |
10:13 | | Noah [nbarr@Nightstar-f93cf469.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
10:14 | | RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:19 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
10:19 | | mode/#code [+o himi] by ChanServ |
10:29 | | Attilla [Obsolete@Nightstar-7a57bd9d.as43234.net] has joined #code |
10:32 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has quit [Ping timeout: 121 seconds] |
10:46 | | You're now known as TheWatcher[d00m] |
10:58 | | * rms is making a bunch of scripts that basically do what things in /etc/{init,rc}.d/ do, I can't use those since those always output stuff, where should I put mine? |
11:33 | < froztbyte> | the same place? |
11:33 | < Rhamphoryncus> | >/dev/null ? |
11:33 | < froztbyte> | they don't have to emit text if you make them able to run quietly or redirect output |
11:39 | | iospacedout is now known as io |
12:12 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
12:15 | | gruber [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
12:43 | | You're now known as TheWatcher |
13:51 | | You're now known as TheWatcher[d00m] |
14:35 | | io is now known as iofficespace |
15:15 | | You're now known as TheWatcher[afk] |
16:13 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has joined #code |
16:13 | | mode/#code [+o Kindamoody|out] by ChanServ |
16:14 | | Kindamoody|out is now known as Kindamoody |
16:22 | < Tarinaky> | So I haven't looked at this code in about 2 months./ |
16:22 | < Tarinaky> | I have no idea where to start poking it :/ |
16:23 | < gnolam> | In the eyes. |
16:23 | < Tarinaky> | Nyarlathotep doesn't have eyes. |
16:58 | < maoranma> | In the tentacled maw. |
16:58 | | maoranma is now known as Noah |
17:01 | < RichyB> | Tarinaky, its manifestation in the form of an Egyptian Pharaoh does. :) |
18:49 | | Kindamoody is now known as Kindamoody[zZz] |
19:11 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
20:03 | | iofficespace is now known as io|meh |
21:24 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
21:24 | | mode/#code [+o Vash] by ChanServ |
22:00 | | * io|meh hits an interesting conundrum |
22:02 | <&jerith> | Sufficiently interesting? |
22:03 | < io|meh> | trying to write a batch script for windows that uses three params, two of which are optional |
22:03 | | * io|meh is trying to figure out how to handle the optional ones |
22:03 | <&jerith> | Trying to write any batch script for Windows is a conundrum. |
22:05 | < io|meh> | see it's mostly written except for that one part |
22:10 | < io|meh> | well |
22:10 | < io|meh> | i'm adding on to that part |
22:10 | | * io|meh grumbles, something about WDDK |
22:21 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [[NS] Quit: ] |
22:25 | < RichyB> | Ditch batch, resort to one of PowerShell, JScript or VBScript? |
22:27 | < io|meh> | maybe |
22:27 | <&McMartin> | JScript. |
22:28 | <&McMartin> | PowerShell isn't guaranteed to be present on the systems you deploy to. |
22:28 | | io|meh is now known as io|driving |
22:33 | < RichyB> | Is JScript still a thing these days? |
22:33 | < RichyB> | I vaguely remember noticing that it existed back when I had a Win98 machine, can't remember why. |
22:34 | < RichyB> | Heh, nice. This exists: http://www.emacswiki.org/emacs/WshRepl |
22:40 | < RichyB> | Is a reasonable version of .NET bundled with Windows these days? |
22:43 | < Namegduf> | RichyB: Not with XP. |
22:43 | < Namegduf> | And there are still a lot of those installs. |
22:43 | < Namegduf> | Vista ships with a version and so does 7, though. |
22:44 | < Namegduf> | Ah, Wikipedia has a table. |
22:45 | < Namegduf> | Vista ships with 3, 7 3.5, 8 4.5. |
22:45 | < Namegduf> | XP MCE ships with 1. |
22:48 | <&McMartin> | JScript is shipped with everything post XP-SP2 at the least, maybe earlier. |
22:48 | <&McMartin> | And a bunch of WMI/PowerShell stuff is natively exported into it |
22:49 | < Namegduf> | No XP service pack bundles .NET. |
22:49 | < RichyB> | JScript and Windows Scripting Host shipped with, uh, Windows 98. |
22:49 | < RichyB> | Maybe a little earlier. :) |
22:50 | < RichyB> | So yeah a little earlier than XP-SP2. ;) |
22:50 | <&McMartin> | I consider the 9x->NT shift to be a "shift to alternate universe" |
22:50 | <&McMartin> | All bets are off. |
22:50 | < RichyB> | That is true. |
22:50 | <&McMartin> | Now, if Win2k had it, or NT4, those are XP's "lineage" and I'd have settled down |
22:50 | < RichyB> | Oh. NT4 didn't? |
22:50 | <&McMartin> | I have no idea |
22:50 | <&McMartin> | XPSP2 is just the earliest I've personally verified. |
22:51 | < RichyB> | Wikipedia has a table claiming that NT 4.0 didn't, but Windows 2k did ship with a very old version of WSH, slightly newer than the Win98 one. |
23:32 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
23:32 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I <3Lovecraft<3 Vorn!] |
23:48 | | io|driving is now known as io|meh |
--- Log closed Sat Jun 02 00:00:56 2012 |