2024/11/06

Newest at the top

2024-11-06 17:23:52 +0100 <EvanR> "concept of a pure function" was well known in lisp since forever
2024-11-06 17:23:15 +0100 <EvanR> C++ of the 90s
2024-11-06 17:23:09 +0100 <EvanR> refusing to look outside its C++ origins
2024-11-06 17:22:54 +0100 <EvanR> D is a miserable pile of hacks and missed opportunities
2024-11-06 17:22:48 +0100Guest7(~Guest7@syn-172-249-181-078.res.spectrum.com)
2024-11-06 17:22:41 +0100 <EvanR> it does not
2024-11-06 17:22:32 +0100 <Inst> I heard that D has a concept of pure function, but it's opt in instead of opt-out, maybe I'm wrong here?
2024-11-06 17:22:30 +0100 <EvanR> all functions in haskell are pure so there's that
2024-11-06 17:22:14 +0100 <Inst> iirc there are no more "mainstream" languages than Haskell that employ purity
2024-11-06 17:22:03 +0100 <EvanR> because they never heard of the term "pure function" before
2024-11-06 17:21:54 +0100 <EvanR> like haskell is purely functional because it's 100% functional, while closure is 40% functional, or something, and so not pure lol
2024-11-06 17:21:50 +0100 <Inst> it's a bit gimmicky that purely here is a term of art, not the colloquial term
2024-11-06 17:21:35 +0100 <Inst> it refers to functional programming, referential transparency, and the equal result of call-by-name, call-by-value, and call-by-need function calls
2024-11-06 17:21:28 +0100 <EvanR> though not everyone knows what this is supposed to mean, some people hear it and think they're talking about proportion of paradigms the language is based on
2024-11-06 17:20:59 +0100 <EvanR> "purely function programming" is not meaningless
2024-11-06 17:20:40 +0100 <EvanR> it's also not a supertype since we don't have subtypes
2024-11-06 17:20:19 +0100DigitteknohippieDigit
2024-11-06 17:20:04 +0100TonyStone(~TonyStone@user/TonyStone) (Ping timeout: 252 seconds)
2024-11-06 17:20:01 +0100 <EvanR> "a set of types" is not one of them
2024-11-06 17:19:51 +0100 <EvanR> we discussed positively 2 ways you can explain what Any means
2024-11-06 17:19:31 +0100Guest7(~Guest7@syn-172-249-181-078.res.spectrum.com) (Ping timeout: 256 seconds)
2024-11-06 17:19:27 +0100 <EvanR> that that makes no sense
2024-11-06 17:19:22 +0100 <Inst> What is your objection?
2024-11-06 17:19:08 +0100 <EvanR> or that it is a class and it's instances are types
2024-11-06 17:18:51 +0100 <EvanR> I object to your theory that "Any -> Any is a member of Any" as if Any (a type) is a set, and it's members are types
2024-11-06 17:18:38 +0100 <kuribas> True functions are total.
2024-11-06 17:18:36 +0100 <Inst> it's weird because I'm the guy lambasting "pure, functional programming" as meaningless, but now I'm going back to "pure, functional programming" is good
2024-11-06 17:18:09 +0100 <Inst> i was just looking for whether or not the argument that only Haskell has true functions has ever been made
2024-11-06 17:18:06 +0100 <EvanR> it's not like Dynamic because Dynamic can actually be used safely, in ways that aren't just STLC with 1 base type
2024-11-06 17:17:41 +0100 <Inst> since (Any -> Any) is a member of Any
2024-11-06 17:17:36 +0100 <kuribas> Inst: yeah, it's like Dynamic -> Dynamic.
2024-11-06 17:17:35 +0100 <Inst> is it?
2024-11-06 17:17:29 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2024-11-06 17:17:16 +0100 <kuribas> Inst: no, (a -> b) is type checked, (Any -> Any) is not, except for the number of inputs.
2024-11-06 17:16:18 +0100 <ncf> if you think of Any as (∃ a. a) then it is isomorphic to (); in other words you can't do anything safe with an Any without making assumptions that are not tracked by the types
2024-11-06 17:16:13 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2024-11-06 17:15:02 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-11-06 17:15:00 +0100 <EvanR> it's a function type for functions that expect an Any as argument (explained above) and return an Any, which is not necessarily related to the input at all
2024-11-06 17:14:29 +0100 <Inst> what does Any -> Any even mean in a Haskell context?
2024-11-06 17:13:48 +0100 <EvanR> that's what we're talking about
2024-11-06 17:13:31 +0100 <EvanR> so Any = some type, while a = any type.
2024-11-06 17:13:30 +0100 <Inst> iirc there's an Any in the GHC internal somewhere
2024-11-06 17:13:00 +0100 <EvanR> Inst, Any (uhg at this name, but it corresponds with typescript) means you don't know what the type is. a -> b means the caller can choose to instantiate a or b at any type they want
2024-11-06 17:12:50 +0100Guest7(~Guest7@syn-172-249-181-078.res.spectrum.com)
2024-11-06 17:12:44 +0100Digit(~user@user/digit) (Ping timeout: 272 seconds)
2024-11-06 17:12:17 +0100Digitteknohippie(~user@user/digit) Digit
2024-11-06 17:10:20 +0100 <JuanDaugherty> the apex doesn even refer to hackage, just blather about 'community'
2024-11-06 17:09:52 +0100spew(~spew@201.141.99.170) spew
2024-11-06 17:09:01 +0100sprotte24(~sprotte24@p200300d16f45f600c5ad94218b2aa1c2.dip0.t-ipconnect.de)
2024-11-06 17:08:49 +0100 <Inst> hmmm, probably not, since it makes itself meaningful by Any being a wrapper over types, i.e, if you consider Any -> Any to be typeless, it's essentially (a -> b), if you consider Any -> Any to be equivalent to Dynamic -> Dynamic, then it's a different content