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 +0100 | Guest7 | (~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 +0100 | Digitteknohippie | Digit |
2024-11-06 17:20:04 +0100 | TonyStone | (~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 +0100 | Guest7 | (~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 +0100 | tomboy64 | (~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 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-11-06 17:15:02 +0100 | JuanDaugherty | (~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 +0100 | Guest7 | (~Guest7@syn-172-249-181-078.res.spectrum.com) |
2024-11-06 17:12:44 +0100 | Digit | (~user@user/digit) (Ping timeout: 272 seconds) |
2024-11-06 17:12:17 +0100 | Digitteknohippie | (~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 +0100 | spew | (~spew@201.141.99.170) spew |
2024-11-06 17:09:01 +0100 | sprotte24 | (~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 |