←2019-08-26 2019-08-27 2019-08-28→ ↑2019 ↑all
00:04:30 <shachaf> `quote invisible
00:04:31 <HackEso> 35) <ehird> With enough crappiness a display can show you invisible pink unicorns. \ 995) <fizzie> "May you live in INVISIBLE TIMES." --Old Chinese proverb. (It can look confusing when written with the proper Unicode.)
00:55:00 -!- adu has joined.
01:24:17 -!- ARCUN has joined.
01:24:43 <ARCUN> I just got Cygwin.
01:24:53 <ARCUN> what fun things can I do?
01:25:30 <ARCUN> I'm asking, as I currently don't have an active project.
01:25:52 <shachaf> You could write a compiler for my programming language.
01:26:04 <ARCUN> what is it?
01:27:14 <shachaf> I'm not sure yet.
01:27:26 <shachaf> Is there a reason to use Cygwin nowadays with WSL?
01:28:14 <ARCUN> I'm using it, since I don't have a PC of my own. I run it on a flashdrive
01:28:24 <ARCUN> Its so far pretty good
01:28:50 <ARCUN> If did have a PC, though, I'd be using WSL instead
01:28:53 <shachaf> Aha.
01:29:48 <ARCUN> When you finish your lang, tell me on my talk page
01:30:01 <shachaf> I don't have a wiki account.
01:30:14 <ARCUN> Make oen then
01:30:16 <shachaf> My language is going to be so good, if I make it.
01:30:19 <ARCUN> one*
01:30:55 <ARCUN> I'd like to see it in action when you complete it
01:31:06 <shachaf> You could write some fancy software.
01:31:20 <shachaf> Maybe you can make a good debugger for me.
01:32:43 <ARCUN> Well, that'll happen when you make a wiki account and tell me about it
01:32:47 <ARCUN> Good Night
01:32:51 -!- ARCUN has left.
01:46:15 -!- nfd9001 has joined.
02:02:40 -!- Sgeo_ has joined.
02:04:52 -!- Sgeo has quit (Ping timeout: 248 seconds).
02:24:06 -!- adu has quit (Quit: adu).
03:19:06 <esowiki> [[Ojc]] N https://esolangs.org/w/index.php?oldid=65668 * A * (+215) Created page with "[[Ojc]] (standing for O[b]j[e]c[t]) is an [[object-oriented]] language designed to be very concise. It is influenced by both Smalltalk and Simula. [[Category:Languages]] Cat..."
03:29:10 -!- nfd9001 has quit (Ping timeout: 272 seconds).
03:36:36 -!- MDude has quit (Ping timeout: 248 seconds).
03:56:23 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65669&oldid=65668 * A * (+2283) No Simula, since I can't learn it.
03:57:50 -!- Sgeo__ has joined.
04:01:08 -!- Sgeo_ has quit (Ping timeout: 248 seconds).
04:31:45 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65670&oldid=65669 * A * (+1049) Examples
04:31:57 <kmc> `quote
04:31:58 <HackEso> 417) <NihilistDandy> Capitalism is a cancer. But I'm a smoker, anyway, so...
04:37:28 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65671&oldid=65670 * A * (+1467) /* Doing math */
04:37:55 <esowiki> [[Ojc]] https://esolangs.org/w/index.php?diff=65672&oldid=65671 * A * (-6) /* Doing math */ Typo
04:59:54 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65673&oldid=65672 * A * (+5602) /* Math in Ojc */
05:28:51 <esowiki> [[Ojc]] https://esolangs.org/w/index.php?diff=65674&oldid=65673 * A * (+1392) /* Sets */
05:30:31 -!- nfd9001 has joined.
05:30:40 -!- sebbu2 has joined.
05:33:48 -!- sebbu has quit (Ping timeout: 245 seconds).
05:38:49 <shachaf> Is the "top-level scope" in a file really like a regular scope or do languages just trick you to make it look like one?
05:39:15 <shachaf> It seems pretty different.
05:41:04 <pikhq> Pretty sure it's regular in Tcl.
05:41:08 <pikhq> But Tcl is a weirdo.
05:41:16 <shachaf> Tcl is indeed a weirdo.
05:42:04 <shachaf> OK, one property of regular scopes is typically that "{ a; b; c; }" means the same as "{ a; { b; c; } }", and if b is a declaration, it's only visible inside the inner block.
05:42:21 <shachaf> I guess that's actually still true in C.
05:43:09 <shachaf> But say you have a thing that reads multiple files and lets declarations refer to each other -- then that's not true anymore.
05:43:14 <shachaf> Definitions are being exported.
05:43:45 <shachaf> I want to have things that modify a scope, as in "const { int x = 1; int y = 2; }" instead of "const int x = 1; const int y = 2;". But I want those declarations to go into the same scope as the regular declarations.
05:43:53 <shachaf> (const is maybe not the best example but you get the idea.)
05:44:28 <shachaf> It's possible that "exported" declarations should be marked explicitly rather than just looking like regular variable declarations?
05:54:21 <Sgeo__> I'm starting to suspect that nVidia's notion of stereoscopy is limited and I should write my own.
05:54:51 <shachaf> you wouldn't copy a stereo
05:58:50 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65675&oldid=65674 * A * (+4753) /* Sets */
05:59:26 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65676&oldid=65675 * A * (-1486) /* Dictionaries */
05:59:48 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65677&oldid=65676 * A * (+1488) /* Sets */
06:20:05 <int-e> btc is weird... why do you split inputs like this? https://bitinfocharts.com/bitcoin/block/530048/183hmJGRuTEi2YDCWy5iozY8rZtFwVgahM
06:25:29 <shachaf> Is there something special about that transaction?
06:25:50 <int-e> It's padded. All the inputs come from the same address.
06:26:00 <Sgeo__> I think I accidentally defined a homogenous coordinate system
06:26:22 <Sgeo__> nVidia has an equation PsInput.x += Separation*(〖PsInput〗_w-Convergence)
06:26:46 <Sgeo__> I decided I wanted to be able to represent PsInput.x += some_constant, which that equation doesn't allow
06:26:51 <int-e> So why would you pad transactions... to slow down the overall transaction rate maybe? This was at a local BTC price peak, too. I don't know.
06:27:01 <Sgeo__> So x += realSep * w - virtualSep * Convergence
06:27:19 <Sgeo__> When realSep = 0, then the equation cannot be converted to the nVidia form
06:27:38 <Sgeo__> (is equation the right word here? It feels wrong. Formula?)
06:28:14 <Sgeo__> * when realSep = 0 and virtualSep and Convergence are non-9
06:28:17 <Sgeo__> non-0
06:28:48 <int-e> Anyway, enough time wasted on this. (I started looking into this because I tried to understand this peak: https://www.blockchain.com/charts/output-volume?timespan=30days
06:30:31 <int-e> ... bit as far as I can see this is just many transactions siphoning off tiny amounts from a single rich address (output of transaction = balance of input). So basically how a bitcoin exchange might operate.)
06:31:01 <shachaf> int-e: I saw that, but I meant why you were looking at it in the first place, or whether this is common.
06:31:04 <int-e> But meh I really shouldn't waste time on this.
06:32:53 <int-e> I don't know whether this kind of padding is a common tactic, I don't even know what exactly it's supposed to achieve.
06:33:22 <int-e> It's a curiosity, really. Odd enough to make me wonder, not important enough to make me care.
06:58:02 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65678&oldid=65677 * A * (+1809) /* Classes */
06:59:45 <esowiki> [[User:JonoCode9374]] https://esolangs.org/w/index.php?diff=65679&oldid=65144 * JonoCode9374 * (+10) /* Languages I've Inspired (feel free to add anything I've missed) */
07:08:23 -!- wob_jonas has quit (Ping timeout: 245 seconds).
07:15:51 -!- Sgeo_ has joined.
07:19:34 -!- Sgeo__ has quit (Ping timeout: 244 seconds).
08:05:22 -!- AnotherTest has joined.
08:21:10 -!- cpressey has joined.
08:23:32 <cpressey> Good morning. I wonder how well Haskell's $ operator would work in an S-expression-based language.
08:24:42 <shachaf> So instead of (f (g x)) you'd write ($ f (g x))
08:24:54 <shachaf> That's an improvement.
08:25:16 <cpressey> I was thinking you'd write (f $ g x)
08:25:34 <shachaf> I should've lowercased that because it was very much not serious.
08:27:49 <esowiki> [[Flop]] https://esolangs.org/w/index.php?diff=65680&oldid=65666 * B jonas * (+119)
08:28:41 -!- wob_jonas has joined.
08:32:22 <cpressey> shachaf: Your error handling thing reminds me of "lexical exceptions", though I don't remember if it's something I saw somewhere, or something I made up once
08:32:46 <cpressey> In "lexical exceptions" you're only allowed to throw X in a location that is lexically enclosed by a catch X
08:33:36 <esowiki> [[Talk:Ojc]] N https://esolangs.org/w/index.php?oldid=65681 * JonoCode9374 * (+262) Lps
08:34:13 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
08:34:20 <cpressey> That doesn't make them totally static, for example if you have local functions, you could write a recursive function inside that lexical block, and throw inside it
08:34:40 <shachaf> Is X an exception type or something lexically bound?
08:35:19 <cpressey> I am sorely tempted to tell you it is a lexically bound exception type
08:35:46 <cpressey> It's some kind of exception type, sure.
08:35:46 <shachaf> I think I'm asking what sort of identifier X is, or where it comes from.
08:36:36 <cpressey> When you throw, you almost always throw a newly-created value, whether it is a value of type "exception" (as it usually is), or not
08:36:51 <cpressey> Throwing existing values is... not something I've seen done.
08:37:12 -!- heroux has quit (Ping timeout: 268 seconds).
08:37:27 -!- heroux has joined.
08:37:28 <cpressey> Maybe you make up a new exception value, out of some local variables you have - that's common.
08:37:34 <shachaf> I'm confused about what binds the values.
08:37:55 <cpressey> I don't know what you mean by that.
08:38:12 -!- Lord_of_Life has joined.
08:38:31 <shachaf> Maybe you can write a more specific example?
08:39:56 <cpressey> try { raise KeyError(12); } catch KeyError(n) { print(n); } <-- is ok
08:40:12 <shachaf> OK, I see.
08:40:20 <cpressey> try { foo(); /* which raises KeyError */ } catch KeyError(n) { print(n); } <-- is not ok, is not lexical
08:40:51 <wob_jonas> cpressey: so you only have lexical gotos?
08:41:32 <cpressey> btw, I hate that the opposite of "catch" is "throw" but the opposite of "raise" is "lower", and I usually end up saying "raise" and "catch" even though they're not opposites
08:41:39 <shachaf> I was wondering whether you meant something like "try { raise foo; } catch foo { ... }" where the identifier "foo" is bound by the catch.
08:43:29 <cpressey> wob_jonas: I guess so, but as I noted, they're still dynamic w.r.t. the stack, if you have e.g. a local recursive function in that lexical block
08:43:33 <wob_jonas> cpressey: I recommend "raise" and "except" then, as in python3
08:43:51 <shachaf> Can you give a recursive function example?
08:44:19 <shachaf> I don't really understand what you mean.
08:44:47 <cpressey> try { var f = function(m) { if m < 100 then f(m+1) else raise KeyError(13); } catch ...
08:44:48 <shachaf> Oh, I see, you mean you *define* a function inside a try.
08:44:59 <shachaf> Right, I'd just figured out what you meant.
08:45:50 <wob_jonas> but what happens if you copy f and leak it out of that scope? do you get a full call/cc?
08:46:45 <cpressey> wob_jonas: I guess it raises an exception that will never be caught. I guess you could also try to prevent it from leaking out.
08:47:08 <shachaf> This seems like a bizarre combination.
08:47:27 <cpressey> Well, I think this must be something I made up, rather than something I encountered somewhere.
09:24:28 -!- arseniiv has joined.
09:29:41 <cpressey> wob_jonas: I guess making the exception thrown by the escaped function, get caught by the lexical catch handler, would be a sensible way to handle it too (given that approximately none of this is very sensible)
09:30:21 <wob_jonas> cpressey: in that case what you have is a call/cc
09:30:25 <esowiki> [[Talk:Ojc]] M https://esolangs.org/w/index.php?diff=65682&oldid=65681 * A * (+528)
09:31:10 <esowiki> [[Talk:Ojc]] M https://esolangs.org/w/index.php?diff=65683&oldid=65682 * A * (+81) Link to tutorial
09:32:58 <esowiki> [[Ojc]] M https://esolangs.org/w/index.php?diff=65684&oldid=65678 * A * (+195) /* Tutorial */
09:34:03 <esowiki> [[Special:Log/move]] move * A * moved [[Ojc]] to [[Salt]]: Because Ojc is not interesting
09:34:04 <esowiki> [[Special:Log/move]] move * A * moved [[Talk:Ojc]] to [[Talk:Salt]]: Because Ojc is not interesting
09:34:49 <esowiki> [[Salt]] M https://esolangs.org/w/index.php?diff=65689&oldid=65685 * A * (+4)
09:35:29 <esowiki> [[Talk:Salt]] M https://esolangs.org/w/index.php?diff=65690&oldid=65687 * A * (-3)
09:37:36 <esowiki> [[Salt]] M https://esolangs.org/w/index.php?diff=65691&oldid=65689 * A * (+17) /* Documenting the class */ A mess
09:38:15 <esowiki> [[Salt]] M https://esolangs.org/w/index.php?diff=65692&oldid=65691 * A * (-33) Smalltalk->Salt
09:39:40 <esowiki> [[Talk:Salt]] M https://esolangs.org/w/index.php?diff=65693&oldid=65690 * A * (+435)
09:45:29 <cpressey> wob_jonas: yes, and that feels slightly too "powerful" for what this was intended to achieve, probably, but who knows.
09:46:01 <wob_jonas> cpressey: you can always have a restriction of call/cc, such as call/ec
09:46:31 <wob_jonas> or something between
09:47:49 <wob_jonas> an explicitly bounded continuation where you tell how long you have to save the state
09:48:11 <shachaf> I'd like to know how linear continuations work.
09:51:59 -!- CountArthurStron has joined.
09:52:54 -!- CountArthurStron has quit (Client Quit).
09:53:10 -!- ArthurStrong has joined.
09:56:28 <cpressey> I have a language which is too "normal" to be an esolang, but is too weird to be a "normal" language.
09:56:46 <myname> apl?
09:57:32 <cpressey> myname: Point taken.
09:57:44 <wob_jonas> cpressey: if in doubt, make an entry about it on esolangs.org, but don't definitely claim that it's an esolang
09:57:57 <wob_jonas> we have a few such entries already
09:58:20 <cpressey> I've made so many esolangs that the languages I've made that aren't particularly esoteric will probably be considered esolangs by many
09:58:24 -!- ArthurStrong has quit (Quit: leaving).
09:58:40 <cpressey> Ah well
09:58:43 <myname> details!
09:59:26 -!- ArthurStrong has joined.
09:59:54 <shachaf> Do you think C++ is an esolang?
10:00:30 <Taneb> I think C++ is certainly a programming language that is esoteric
10:00:38 <Taneb> Whether it's an esoteric programming language is another matter
10:01:01 <wob_jonas> so almost every programming language is esoteric, right? especially modern ones
10:01:16 <shachaf> I think C++ is the way it is for nearly the same reasons esolangs are the way they are.
10:01:50 <shachaf> People enjoy doing things under odd constraints that make them hard but achievable.
10:01:53 <cpressey> myname: https://github.com/catseye/Robin/tree/develop-0.3 (I'm trying to get the next version of released)
10:02:24 -!- ArthurStrong has quit (Client Quit).
10:02:39 -!- ArthurStrong has joined.
10:03:59 <esowiki> [[Salt]] M https://esolangs.org/w/index.php?diff=65694&oldid=65692 * A * (+5853)
10:10:41 <esowiki> [[Salt]] M https://esolangs.org/w/index.php?diff=65695&oldid=65694 * A * (-6) I should not make a Smalltalk-based language yet before I learn Smalltalk.
10:11:28 <esowiki> [[Talk:Salt]] M https://esolangs.org/w/index.php?diff=65696&oldid=65693 * A * (+90)
10:27:48 -!- Sgeo__ has joined.
10:29:40 <esowiki> [[Hello world program in esoteric languages]] M https://esolangs.org/w/index.php?diff=65697&oldid=65656 * A * (+29) /* SADOL */
10:31:17 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
10:41:10 <cpressey> I think it's too freaky to be a "normal" language, even if it's not an esolang. So I think, things like trying to add Haskell's infix $ operator to it, are fair game.
10:41:35 <cpressey> Should probably just try hand-converting some Scheme code to use it first just to see what it looks like though.
10:48:31 <int-e> `? password
10:48:32 <HackEso> The password of the month is surprising.
10:58:23 -!- xkapastel has joined.
11:01:10 <int-e> . o O ( cpressey doesn't believe in type signatures )
11:03:03 <int-e> oh I've found a few.
11:05:09 <cpressey> https://gist.github.com/cpressey/030883cadaf9a12a802cd6c95affc01e
11:06:22 <cpressey> It *does* reduce the number of parens, just like it does in Haskell. Whether it does so nicely, or not, I don't know.
11:06:32 <int-e> cpressey: now I want to get rid of the outermost parentheses as well
11:06:56 <cpressey> int-e: That's hard.
11:06:59 <int-e> (and `if` is a bit awkward
11:07:00 <int-e> )
11:07:51 <cpressey> int-e: Why don't I believe in type signatures?
11:07:55 <int-e> I've used ghc's BlockArguments for if-then-else last weekend... https://gist.github.com/int-e/57eefc6cce29ed47ddaaca13a0774533#file-quine-hs-L319-L329
11:08:03 <int-e> cpressey: because your code uses them so sparingly
11:08:23 <int-e> cpressey: whereas I, almost religiously, put signatures on all top-level bindings.
11:08:34 <int-e> partly as documentation, partly to localize type errors
11:09:49 <cpressey> int-e: If I thought of these modules as public, I would probably try harder to do that. But this is largely experimental stuff.
11:09:57 <int-e> (The latter was the driving factor historically. I just got tired of working on modifying a function and getting a type error in a different function as a result.)
11:10:14 <wob_jonas> cpressey: I think some older lisps (of the common lisp side, not the scheme side) had this syntax extension where you can use square brackets as well as round parens, and a close square bracket closes all round paren that was open since the matching open square bracket
11:10:41 <wob_jonas> cpressey: is your dollar sign syntax the same, except you write round parenthesis instead of square brackets and a dollar sign instead of a left round parenthesis?
11:11:00 <wob_jonas> because if so, then the bracket thing is more general
11:11:28 <wob_jonas> but has basically the same power
11:11:33 <wob_jonas> just possibly more convenience
11:12:15 <int-e> cpressey: anyway indentation is the best bracket-avoiding mechanism. ;)
11:13:07 <cpressey> wob_jonas: I don't like the "this one close paren closes all open parens" approach because the parens are unbalanced.
11:14:59 <cpressey> int-e: re ifThenElse, I was wondering on the weekend if Haskell's `if` couldn't just be defined as a function :: Boolean -> a -> a
11:15:19 <cpressey> `then` and `else` are good syntax though, justifies the sugar
11:15:20 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: then`: not found
11:16:00 <int-e> cpressey: there are advocates of that idea, but if-then-else is common enough and the alternative would have more parentheses and worse (usually type) errors.
11:17:47 <int-e> cpressey: the main downside, I guess, is that the syntax really only works for booleans; it can't be overloaded for a DSL.
11:19:16 <wob_jonas> cpressey: sure, in a *lazy* language you can define it as a function, only in haskell you have to call it something different from "if" because that name is taken by a keyword
11:20:04 <wob_jonas> but I'm used to strict languages, where it can't be defined as a plain function
11:20:06 <int-e> (A secondary issue is that I never really know how to layout if-then-else, especially inside do blocks. I do something, but it never feels right and I'm not sure how consistent I am... might be worth checking.)
11:20:16 <cpressey> wob_jonas: my point was they didn't need to define that keyword, they could've made `if` a function defined in the prelude
11:20:27 <wob_jonas> cpressey: sure
11:20:53 <cpressey> int-e: I have the same issue, I usually avoid it and use `case` instead
11:20:57 <wob_jonas> I think the function is there in the libraries under some other name
11:21:24 <int-e> :t Data.Bool.bool -- almost
11:21:25 <lambdabot> a -> a -> Bool -> a
11:21:57 <wob_jonas> @hoogle Bool -> a -> a -> a
11:21:58 <lambdabot> Data.Bool.HT if' :: Bool -> a -> a -> a
11:21:58 <lambdabot> Data.Bool.HT ifThenElse :: Bool -> a -> a -> a
11:21:58 <lambdabot> NumericPrelude ifThenElse :: () => Bool -> a -> a -> a
11:23:01 <cpressey> "utility-ht-0.0.1", okay
11:23:28 <fizzie> I was going to ask isn't if' the canonical name for that.
11:23:50 <fizzie> @hoogle if'
11:23:51 <lambdabot> Data.Bool.HT if' :: Bool -> a -> a -> a
11:23:51 <lambdabot> Control.Conditional if' :: ToBool bool => bool -> a -> a -> a
11:23:51 <lambdabot> Data.ProtoLens.Compiler.Combinators if' :: Exp -> Exp -> Exp -> Exp
11:23:54 <wob_jonas> @hoogle a -> a -> Bool -> a
11:23:55 <lambdabot> Data.Bool bool :: a -> a -> Bool -> a
11:23:55 <lambdabot> Data.Bool.Compat bool :: () => a -> a -> Bool -> a
11:23:56 <lambdabot> Control.Error.Util bool :: a -> a -> Bool -> a
11:24:04 <wob_jonas> @more
11:24:29 <int-e> @pl if b then t else f
11:24:29 <lambdabot> if' b t f
11:24:30 <cpressey> Apparently HT stands for... Henning Thielemann?
11:24:49 <myname> just define bools like (\xy.x) and (\xy.y), that eliminates the need of an if altogether
11:24:49 <Taneb> Sounds conceivable
11:24:55 <int-e> fizzie: @pl is the only reason I can think of that this name would be "canonical".
11:25:04 <int-e> cpressey: Yes.
11:25:05 <wob_jonas> myname: that's hard in the original Haskell type system
11:25:18 <fizzie> int-e: Well, my definition of "canonical" here is "I've heard of it with that name".
11:25:43 <int-e> fizzie: That's not the canonical definition of "canonical". ;-)
11:27:25 <int-e> (Though if you've heard it somewhere that may support the idea that it is indeed canonical. But it might also be an idiosyncracy of your source, and not enshrined in any canon that everybody subscribes to.)
11:28:23 <int-e> ("Everybody" is, of course, referring to a certain subculture or clique. :P)
11:31:31 <fizzie> It may be that the reordered "bool :: a -> a -> Bool -> a" is more useful as a function anyway.
11:32:20 <int-e> :t maybe
11:32:21 <lambdabot> b -> (a -> b) -> Maybe a -> b
11:33:07 <wob_jonas> @pl if x then y else z
11:33:08 <lambdabot> if' x y z
11:33:17 <wob_jonas> @pl bool x y z
11:33:17 <lambdabot> bool x y z
11:33:54 <fizzie> @hoogle Maybe a -> a -> a
11:33:55 <lambdabot> Test.Framework.Providers.API orElse :: Maybe a -> a -> a
11:33:55 <lambdabot> Control.Error.Util (?:) :: Maybe a -> a -> a
11:33:55 <lambdabot> Universum.Monad.Maybe (?:) :: Maybe a -> a -> a
11:34:35 <fizzie> @hoogle a -> Maybe a -> a
11:34:36 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
11:34:36 <lambdabot> System.Directory.Internal.Prelude fromMaybe :: () => a -> Maybe a -> a
11:34:36 <lambdabot> Distribution.Compat.Prelude.Internal fromMaybe :: () => a -> Maybe a -> a
11:34:41 <cpressey> I should learn more Haskell.
11:35:11 <wob_jonas> @unpl if'
11:35:12 <lambdabot> if'
11:35:22 <wob_jonas> @unpl if' x y z
11:35:22 <lambdabot> if' x y z
11:35:36 <wob_jonas> @unpl if' True y z
11:35:37 <lambdabot> if' True y z
11:35:40 <wob_jonas> hmm
11:35:47 <wob_jonas> does this really know about if' ?
11:36:49 <wob_jonas> @run if' True x y
11:36:51 <lambdabot> error:
11:36:51 <lambdabot> • Variable not in scope: if' :: Bool -> Expr -> Expr -> t
11:36:51 <lambdabot> • Perhaps you meant ‘f'’ (imported from Debug.SimpleReflect)
11:37:01 <wob_jonas> @run bool x y True
11:37:03 <lambdabot> y
11:37:20 <wob_jonas> @pl \y z x -> bool x y z
11:37:20 <lambdabot> flip . flip bool
11:38:28 -!- nfd9001 has quit (Ping timeout: 258 seconds).
11:39:04 <fizzie> @pl \c a b -> bool a b c
11:39:04 <lambdabot> flip (flip . bool)
11:40:13 <cpressey> I don't even know enough Haskell syntax to write a `case` on one line
11:40:22 <fizzie> @pl \a b c -> if c then a else b
11:40:22 <lambdabot> flip . flip if'
11:40:25 <wob_jonas> ah
11:40:51 <fizzie> Maybe it just knows enough about if' to translate if/then/else into it.
11:40:54 <wob_jonas> cpressey: it's like case expr of { pat0 => expr0; pat1 => expr1; }
11:41:21 <wob_jonas> I think
11:41:26 <wob_jonas> I'm not sure, I don't remember haskell syntax
11:41:48 <int-e> > case otherwise of False -> "oops"; True -> "okay!"
11:41:50 <lambdabot> "okay!"
11:41:54 <int-e> > case otherwise of { False -> "oops"; True -> "okay!" }
11:41:56 <lambdabot> "okay!"
11:42:16 <wob_jonas> ah with a single arrow
11:42:21 <wob_jonas> sorry
11:42:50 <int-e> => in case is the mark of an ML programmer?
11:44:21 <cpressey> OK. I think it is just that @pl does not parse the syntax.
11:44:46 <int-e> cpressey: how would you make \b f t -> if b then f else t point-free?
11:45:06 <int-e> @pl would just not work with the syntax.
11:45:24 <wob_jonas> @pl \b f t -> if b then f else t
11:45:25 <lambdabot> if'
11:45:41 <wob_jonas> @pl \b f t -> if b then f else t -- @pl parses all of Haskell syntax, didn't you know?
11:45:41 <lambdabot> if'
11:45:56 <int-e> It really doesn't.
11:45:59 <wob_jonas> @pl \b f t -> if b then f else t {- such as block comments -}
11:45:59 <lambdabot> if'
11:46:08 <cpressey> Well, it doesn't parse case.
11:46:21 <wob_jonas> and that thing with the minus sign that I saw the last time
11:46:22 <int-e> @pl \xs -> case xs of [] -> not; x:xs -> supported
11:46:22 <lambdabot> (line 1, column 24):
11:46:23 <lambdabot> unexpected '>'
11:46:23 <lambdabot> expecting operator
11:47:03 <int-e> @pl f x | odd x = 1 | otherwise = 2
11:47:03 <lambdabot> (line 1, column 14):
11:47:03 <lambdabot> unexpected " "
11:47:13 <int-e> > @pl f x = if odd x then 1 else 2
11:47:15 <lambdabot> <hint>:1:1: error: parse error on input ‘@’
11:47:20 <int-e> @pl f x = if odd x then 1 else 2
11:47:20 <lambdabot> f = flip (flip if' 1 . odd) 2
11:48:10 <int-e> @pl is an awful hack, really.
11:49:12 <cpressey> int-e: I'm not qualified to say how one could write `if'` point-free.
11:52:05 <cpressey> My inclination would be to write it in CPS. Which doesn't help?
11:53:06 <int-e> You need a destructor for Bool. Something like if' or bool. ;-)
11:53:49 <int-e> Or maybe a way of sectioning anything.
11:54:03 <int-e> (if then else) b t f = (if b then t else f) ;-)
11:54:15 <int-e> > (,2,) 1 3
11:54:17 <lambdabot> (1,2,3)
11:56:06 <cpressey> "You need something else to complete it, something like if' itself" sounds a bit like my thought process was, yeah
11:57:31 <cpressey> @type (,2,)
11:57:33 <lambdabot> Num t1 => t2 -> t3 -> (t2, t1, t3)
11:58:21 <cpressey> Sometimes Haskell reminds me of PL/I
11:58:43 <cpressey> "If some sequence of characters has a reasonable interpretation, the language will make that interpretation"
12:01:30 <myname> sounds also a lot like irp
12:03:38 <wob_jonas> > (2,) 1 3
12:03:40 <lambdabot> error:
12:03:40 <lambdabot> • Couldn't match expected type ‘Integer -> t’
12:03:41 <lambdabot> with actual type ‘(Integer, Integer)’
12:04:01 <wob_jonas> > (1,2,3) : (,Int,) Int Int
12:04:03 <lambdabot> error:
12:04:03 <lambdabot> • Data constructor not in scope: Int
12:04:03 <lambdabot> • Perhaps you meant one of these:
12:04:06 <wob_jonas> > (1,2,3) :: (,Int,) Int Int
12:04:08 <lambdabot> <hint>:1:14: error: parse error on input ‘Int’
12:04:14 <wob_jonas> hmm, doesn't work as a type?
12:09:15 <int-e> well, a lot of things don't work as types
12:09:25 <int-e> if-then-else, case expressions...
12:09:28 <int-e> lambdas
12:09:48 <int-e> in fact, since sections are lambdas, sections cannot really be expected to work on the type level
12:39:41 -!- MDude has joined.
12:40:51 <arseniiv> <int-e> You need a destructor for Bool. Something like if' or bool. ;-) => yeah, why isn’t it standard yet?
12:42:16 <arseniiv> ah or is it?
12:42:27 <arseniiv> I was confused, don’t mind that
12:43:03 <arseniiv> I mean I revoke my question
12:47:40 <int-e> . o O ( retract, withdraw )
12:49:11 <wob_jonas> `? brevity
12:49:12 <HackEso> syn. "shortness"
12:53:57 <int-e> So... "nub" is the very essence of brevity.
12:57:53 -!- Sgeo_ has joined.
13:00:11 <arseniiv> int-e: yeah I wrote that and then it occurred I could write “I take back”
13:01:18 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
13:32:27 -!- sebbu2 has changed nick to sebbu.
13:55:45 <esowiki> [[Flop]] https://esolangs.org/w/index.php?diff=65698&oldid=65680 * InfiniteDonuts * (+229)
14:32:38 <cpressey> For whatever it's worth, version 0.3 of Robin has been released. Already I know things I want to change for 0.4. But at least it is a little better than 0.2 was. https://github.com/catseye/Robin
14:36:31 <wob_jonas> cpressey: is this the questionable esoteric language that you've mentioned?
14:39:42 <cpressey> wob_jonas: yes
14:40:54 <cpressey> version 0.2 was in 2014, btw, so this is, like, a long-overdue update of something I haven't touched in 5 years, basically
15:20:27 <esowiki> [[SIMPLE (preprocessor)]] N https://esolangs.org/w/index.php?oldid=65699 * B jonas * (+1395) Created page with "'''SIMPLE''' is a text preprocessor created by [[David Madore]] in 1998, inspired by m4. SIMPLE has special syntax to expand a function parameter with each of its tokens qu..."
15:21:07 <esowiki> [[SIMPLE]] https://esolangs.org/w/index.php?diff=65700&oldid=8359 * B jonas * (+71)
15:21:59 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=65701&oldid=65642 * B jonas * (+28) [[SIMPLE (preprocessor)]]
15:23:52 <esowiki> [[David Madore]] https://esolangs.org/w/index.php?diff=65702&oldid=59714 * B jonas * (+28)
15:28:50 -!- wob_jonas has quit (Remote host closed the connection).
15:32:13 -!- ArthurStrong has quit (Quit: leaving).
15:58:29 -!- cpressey has quit (Quit: A la prochaine.).
16:15:03 <arseniiv> rats live on no evil star, huh
16:15:49 <Taneb> arseniiv: won't lovers revolt now?
16:17:05 <arseniiv> Taneb: don’t know how well-known that palyndrome is, I took it from cpressey’s generated text :D
16:18:04 <arseniiv> ah, seemingly it is more or less known
16:18:55 <arseniiv> in poems and stories and music albums
16:22:45 <esowiki> [[Functional()]] https://esolangs.org/w/index.php?diff=65703&oldid=57492 * Hakerh400 * (-16) Update interpreter link
16:25:47 <esowiki> [[Bitwise Trance]] https://esolangs.org/w/index.php?diff=65704&oldid=59794 * Hakerh400 * (-3) Update interpreter link
16:25:55 <Taneb> arseniiv: I stole it from the song "Bob" by Al Yankovic
16:26:41 <esowiki> [[BitBounce]] https://esolangs.org/w/index.php?diff=65705&oldid=60020 * Hakerh400 * (+2) Update interpreter link
16:28:44 <arseniiv> that’s weird
16:29:15 <Taneb> Yes
16:29:43 <esowiki> [[Functasy]] https://esolangs.org/w/index.php?diff=65706&oldid=60557 * Hakerh400 * (+93) Update interpreter link
16:30:30 <esowiki> [[Examinable Invocation Vector]] https://esolangs.org/w/index.php?diff=65707&oldid=62375 * Hakerh400 * (-188) Update interpreter link
16:31:01 <esowiki> [[Realm]] https://esolangs.org/w/index.php?diff=65708&oldid=64710 * Hakerh400 * (-164) Update interpreter link
16:41:18 -!- b_jonas has joined.
16:41:27 <b_jonas> I just saw something funny
16:41:42 <b_jonas> water was trapped between the two panes of the double-layered window of the bus
16:41:49 <b_jonas> was a few centimeters high
16:41:56 <b_jonas> it made nice waves as the bus accelerated
16:42:30 -!- FreeFull has joined.
17:11:05 <esowiki> [[SIMPLE (preprocessor)]] https://esolangs.org/w/index.php?diff=65709&oldid=65699 * B jonas * (+54)
17:45:04 -!- Phantom_Hoover has joined.
18:01:17 <b_jonas> [ 0.45 * 50 75
18:01:18 <j-bot> b_jonas: 22.5 33.75
18:15:31 <Phantom_Hoover> what language is [
18:15:31 <APic> Whoah
18:15:39 * APic just thought, wtf, ##Esoteric is invite only
18:15:45 <APic> Then i realized it has one Hash less
18:15:46 <APic> 😸
18:19:37 <kmc> we are Officially Esoteric™
18:21:03 <esowiki> [[Special:Log/newusers]] create * Antirapistrapistclub * New user account
18:22:22 <APic> *nod*
18:22:55 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=65710&oldid=65630 * Antirapistrapistclub * (+419)
18:23:11 <esowiki> [[User:Antirapistrapistclub]] N https://esolangs.org/w/index.php?oldid=65711 * Antirapistrapistclub * (+0) Created blank page
18:23:20 <esowiki> [[User talk:Antirapistrapistclub]] N https://esolangs.org/w/index.php?oldid=65712 * Antirapistrapistclub * (+0) Created blank page
18:24:57 <int-e> Ominous nick...
18:25:27 <Hooloovo0> blank pages don't sound good
18:26:59 <int-e> That could just mean that they don't like their user name/talk page links to be red.
18:32:26 <b_jonas> Phantom_Hoover: J
18:32:41 <b_jonas> Phantom_Hoover: [ is not the name of the language, it's the shortcut invocation for the bot
18:32:51 <b_jonas> j-bot, jeval: 0.45 * 50 75
18:32:51 <j-bot> b_jonas: 22.5 33.75
18:33:53 <Hooloovo0> oh, I see
18:35:10 <b_jonas> and > is also not the name of a language, but it's a shortcut to evaluate things in a different language
18:35:40 <b_jonas> > fmap (* 0.45) [50, 75]
18:35:42 <lambdabot> [22.5,33.75]
18:37:43 <esowiki> [[Flop]] https://esolangs.org/w/index.php?diff=65713&oldid=65698 * InfiniteDonuts * (+69) /* Cat */
18:38:01 <esowiki> [[Flop]] https://esolangs.org/w/index.php?diff=65714&oldid=65713 * InfiniteDonuts * (-1) /* Infinite Loop */
18:42:14 <b_jonas> cpressey: the definitions in https://github.com/catseye/Robin/blob/master/stdlib/cmp.robin#L147 don't seem right
18:42:41 <b_jonas> either that or the documentation for what those functions are supposed to do
19:15:29 -!- Melvar has quit (Quit: WeeChat 2.4).
19:31:29 -!- laerling has left ("Leaving").
19:32:33 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
19:36:55 <esowiki> [[Special:Log/newusers]] create * Zektay77 * New user account
19:37:04 <arseniiv> @tell cpressey (hello) in your Robin description on Github, you said PicoLisp has macros; one of my friends says it isn’t true. I personally don’t know anything about it and then I can tell him something if you wish
19:37:05 <lambdabot> Consider it noted.
19:38:09 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=65715&oldid=65710 * Zektay77 * (+87) /* Introductions */
19:38:37 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=65716&oldid=65715 * Zektay77 * (+85) /* Introductions */
19:52:45 -!- Phantom_Hoover has joined.
19:54:57 <shachaf> Should I use 0x8B or 0x89 for encoding reg-reg mov on x86?
19:57:56 -!- Melvar has joined.
19:58:23 <shachaf> Or more generally if there are redundant encodings like that with "foo r/m,r" and "foo r,r/m" is there a reason to prefer one?
20:09:02 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=65717&oldid=65716 * Mid * (+139) /* Introductions */
20:15:45 -!- unlimiter has joined.
20:21:37 <b_jonas> shachaf: dunno, check (recent versions of) the intel optimization manual, the amd optimization manual, the optimization manual for your specific processor generation, and Agner's manuals
20:21:43 <b_jonas> I think it doesn't matter
20:33:57 -!- Lord_of_Life_ has joined.
20:36:40 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
20:36:49 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:57:25 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:23:37 -!- sftp has quit (Excess Flood).
21:24:09 -!- sftp has joined.
21:31:54 -!- flux98 has joined.
21:31:56 -!- flux98 has left.
21:34:13 -!- unlimiter has quit (Quit: WeeChat 2.5).
21:43:07 -!- xkapastel has joined.
21:51:43 -!- b_jonas has quit (Quit: leaving).
21:53:01 -!- Melvar has quit (Ping timeout: 246 seconds).
21:53:26 -!- Melvar has joined.
21:55:19 -!- AnotherTest has quit (Ping timeout: 276 seconds).
23:10:43 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
23:33:32 -!- FreeFull has quit.
←2019-08-26 2019-08-27 2019-08-28→ ↑2019 ↑all