2022-02-08 00:00:23 +0100 | brian___ | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:00:27 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2022-02-08 00:01:27 +0100 | brian___ | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) () |
2022-02-08 00:01:30 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 00:01:31 +0100 | brian___ | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:01:59 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 00:02:21 +0100 | brian___ | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit) |
2022-02-08 00:04:03 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 00:05:32 +0100 | <lbseale> | is it best practice to use `catches` to handle exceptions thrown from pure code? |
2022-02-08 00:06:37 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-02-08 00:06:46 +0100 | _xor | (~xor@dsl-50-5-233-169.fuse.net) |
2022-02-08 00:07:33 +0100 | <monochrom> | Depends on what "handle" means. See my http://www.vex.net/~trebla/haskell/exception-tutorial.xhtml#catch |
2022-02-08 00:07:39 +0100 | <wavemode> | at the top level of an application to provide some graceful cleanup, sure |
2022-02-08 00:08:03 +0100 | <lbseale> | wavemode, that is what I have in mind |
2022-02-08 00:08:18 +0100 | <lbseale> | monochrom, ty I'll read this |
2022-02-08 00:08:23 +0100 | <monochrom> | In other languages they don't distinguish "clean up" and "plan B", both are called "handle". In Haskell, we do better. |
2022-02-08 00:08:24 +0100 | <wavemode> | but exceptions in pure code usually indicate a bug that really needs to be fixed |
2022-02-08 00:09:01 +0100 | <monochrom> | Oh, pure code. Laziness will confound you anyway. |
2022-02-08 00:09:06 +0100 | <ski> | @wiki Error vs. Exception |
2022-02-08 00:09:06 +0100 | <lambdabot> | https://wiki.haskell.org/Error_vs._Exception |
2022-02-08 00:10:04 +0100 | <monochrom> | And yeah we also do better than lumping together "there is an error because I try to open a file, which is not my fault" and "there is an error because I try to divide by zero, which is my fault". |
2022-02-08 00:11:12 +0100 | <monochrom> | This is why imperative programming is easier to learn. Or "easier" to learn. There are "fewer" concepts to learn. |
2022-02-08 00:11:34 +0100 | ober | (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:11:35 +0100 | <dminuoso> | Rembane: Gah, its a shame this doesnt work for non-Bounded like Integer |
2022-02-08 00:11:58 +0100 | <dminuoso> | But I guess we can just do |
2022-02-08 00:12:12 +0100 | <dminuoso> | % foldMap1_ = foldr1 ((<>) . f) |
2022-02-08 00:12:12 +0100 | <yahb> | dminuoso: |
2022-02-08 00:12:26 +0100 | <dminuoso> | % minMax :: (Ord a, Foldable f) => f a -> (a, a); minMax = coerce . foldMap1_ (Min &&& Max) |
2022-02-08 00:12:27 +0100 | <yahb> | dminuoso: ; <interactive>:97:67: error:; * Couldn't match expected type: f a -> b1; with actual type: (Min b0, Max b0); * Possible cause: `foldMap1_' is applied to too many arguments; In the second argument of `(.)', namely `foldMap1_ (Min &&& Max)'; In the expression: coerce . foldMap1_ (Min &&& Max); In an equation for `minMax': minMax = coerce . foldMap1_ (Min &&& Max |
2022-02-08 00:12:30 +0100 | <dminuoso> | Or some such |
2022-02-08 00:13:14 +0100 | ober | Ober |
2022-02-08 00:13:16 +0100 | <dminuoso> | Oh |
2022-02-08 00:13:19 +0100 | Ober | ober |
2022-02-08 00:13:29 +0100 | ober | Oberblast |
2022-02-08 00:13:31 +0100 | Oberblast | ober |
2022-02-08 00:13:43 +0100 | ski | . o O ( `catchBind :: Exception e => IO a -> (e -> IO b) -> (a -> IO b) -> IO b' ) |
2022-02-08 00:15:00 +0100 | <lbseale> | ski, "In this article we use the term exception for expected but irregular situations at runtime" -- this is exactly what I mean by exception |
2022-02-08 00:15:51 +0100 | k8yun_ | (~k8yun@24.244.29.102) |
2022-02-08 00:16:15 +0100 | <monochrom> | I don't trust word mincing like those. |
2022-02-08 00:16:37 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2022-02-08 00:16:46 +0100 | <monochrom> | I think "is this under my control or not?" is a better question. |
2022-02-08 00:17:05 +0100 | <ski> | it can also be useful to distinguish faults, which are inadequacies of the implementation, such as out of memory, out of some other resource, integer overflow (depending) |
2022-02-08 00:17:29 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-08 00:17:38 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-02-08 00:17:52 +0100 | boxscape_ | (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-02-08 00:19:17 +0100 | <dminuoso> | Mmm, actually we cant trivially do this with foldr1 shame |
2022-02-08 00:19:25 +0100 | k8yun | (~k8yun@24.244.29.102) (Ping timeout: 240 seconds) |
2022-02-08 00:19:38 +0100 | <ski> | (btw, i don't really have any in principle qualms about using exceptions (not necessarily in the `Exception' sense) for "ordinary but uncommon" situations, like end of file, end of list, parse failure, &c.) |
2022-02-08 00:20:30 +0100 | <lbseale> | I think this is a nice example from the wiki page: "First, consider a compiler like GHC. If you feed it a program that contains invalid syntax or inconsistent types, it emits a description of the problem. Such occurrences are considered to be exceptions." |
2022-02-08 00:20:40 +0100 | <wavemode> | the usual qualm is performance |
2022-02-08 00:20:57 +0100 | <ski> | (i know some people, in some other places, say "exceptions are for exceptional situations", but i don't really understand what that means (it sounds like a tautology). it appears they don't like using it for "end of sequence", e.g., but in my mind that doesn't follow) |
2022-02-08 00:21:35 +0100 | <dibblego> | that saying came from java and it is hocus-pocus |
2022-02-08 00:21:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-02-08 00:22:16 +0100 | <ski> | anyway, i agree that correctly indicating the source of the problem, (which tend to determine to a large degree how you handle it, what you can do about it, if anything) is a good idea |
2022-02-08 00:22:21 +0100 | ober | (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) (Quit: Leaving) |
2022-02-08 00:23:46 +0100 | ober | (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:23:52 +0100 | <ski> | lbseale : the "expected .. at runtime" vs. "mistakes in the running program" distinction there seem to me to be the most relevant part of that paragraph |
2022-02-08 00:23:53 +0100 | <Rembane> | dminuoso: Yeah. I have too bad imagination to realize how it could work for Integer. |
2022-02-08 00:24:04 +0100 | <jackdk> | dibblego: I am familiar with its origin but not its hocus-pocusness, and to date have found it a reasonable rule to follow. Can you elaborate? |
2022-02-08 00:24:22 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds)) |
2022-02-08 00:24:31 +0100 | <dibblego> | jackdk: it starts with: what is an "exceptional situation"? |
2022-02-08 00:24:35 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-02-08 00:24:49 +0100 | ober | (~oberblast@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit) |
2022-02-08 00:25:14 +0100 | <EvanR> | exceptions are so old that's probably entirely relative |
2022-02-08 00:25:22 +0100 | <dibblego> | here are some candidate answers 1. the user needs to type A, B, or C; but they typed D 2. The file was not there 3. The network disappeared. |
2022-02-08 00:25:39 +0100 | <ski> | "An exceptional situation is any situation in which you decide to signal the situation by using an exception." -- how about this definition ? |
2022-02-08 00:25:45 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:25:49 +0100 | <dibblego> | ski: that's the standard conclusion |
2022-02-08 00:25:58 +0100 | <ski> | yea. which makes it tautological |
2022-02-08 00:26:13 +0100 | <dminuoso> | ski: Its a conflation of etymology, personal interpretation of a word and the word as a particular feature/set of semantics |
2022-02-08 00:27:05 +0100 | <int-e> | . o O ( so loss of power (crashing the computer) is not an exceptional situation ) |
2022-02-08 00:27:10 +0100 | <dibblego> | "The file was not there" is a good answer, yes use exceptions, but the reason why is not: exceptional situation — rather, how I/O works on the machine. A hypothetical machine that didn't use IO for readFile (i.e. where readFile is inside the closed world), we wouldn't use exceptions |
2022-02-08 00:27:26 +0100 | <EvanR> | it's funny that we use Either String as a sort of exception, which isn't using any special mechanism... it's totally ordinary code |
2022-02-08 00:27:26 +0100 | <monochrom> | An exceptional situation is a situation that shouldn't have survived but it does because it shouldn't have been fit but it's fit. How about that? >:) |
2022-02-08 00:27:41 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit) |
2022-02-08 00:28:21 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:28:53 +0100 | <monochrom> | This is why I ask the question "is it under my control or not?" |
2022-02-08 00:29:07 +0100 | <EvanR> | parse error, not under your control |
2022-02-08 00:29:12 +0100 | <EvanR> | throw an exception? |
2022-02-08 00:29:15 +0100 | ski | . o O ( stoically-oriented-programming ) |
2022-02-08 00:29:23 +0100 | <wavemode> | java developers should have lobbied for sum types before espousing this "exceptional situations" dogma... |
2022-02-08 00:29:36 +0100 | <dibblego> | I did, in 2005 |
2022-02-08 00:29:42 +0100 | <dminuoso> | Maybe we should avoid "exceptional" on the basis that its suggestive. Phrases like "irrecoverable situation" or "unexpected condition" seem more precise |
2022-02-08 00:29:43 +0100 | <dibblego> | are we there yet? |
2022-02-08 00:30:04 +0100 | <dminuoso> | Once you avoid that silly word "exception" in there, you stop making any associative or anti-associative combination with "exception-the-language-feature" |
2022-02-08 00:30:23 +0100 | <dibblego> | not precise enough — there is a reason we use exceptions for "the file is not there" versus, "call head on empty list [ignoring actual head[" |
2022-02-08 00:30:23 +0100 | ski | . o O ( "The modern Stoic's decision making algorithm" <https://i.imgur.com/67pMoOk.jpg">67pMoOk.jpg> ) |
2022-02-08 00:30:33 +0100 | <dminuoso> | And you begin thinking of "exception-the-language-feature" more as non-local goto/control transfer |
2022-02-08 00:30:36 +0100 | <lbseale> | lol ski |
2022-02-08 00:30:53 +0100 | <dolio> | It means there are tradeoffs when implementing continuations, and some ways are unsuitable for being used as typical control flow for your program if you care about your program working well. |
2022-02-08 00:30:59 +0100 | <dibblego> | anyway, didn't mean to start a rant — I have code to write |
2022-02-08 00:32:01 +0100 | <dolio> | So you should only use them in uncommon cases where your program is blowing up, and you don't really care about being really efficient. |
2022-02-08 00:32:16 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-02-08 00:32:30 +0100 | <monochrom> | Parse errors are why Alternative is an exception system. |
2022-02-08 00:32:32 +0100 | ober | bri |
2022-02-08 00:32:41 +0100 | <ski> | there's this "try vs. check" aspect of I/O operations. (race conditions) |
2022-02-08 00:33:27 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Quit: Leaving) |
2022-02-08 00:33:34 +0100 | <int-e> | https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use ? |
2022-02-08 00:34:18 +0100 | <ski> | yes |
2022-02-08 00:34:42 +0100 | ski | . o O ( "Parse, don't validate" in 2019-11-05 at <https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/> ) |
2022-02-08 00:34:52 +0100 | bri | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Quit: Leaving) |
2022-02-08 00:35:45 +0100 | mvr_ | (uid36976@id-36976.tinside.irccloud.com) |
2022-02-08 00:35:49 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-08 00:35:54 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:36:39 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) () |
2022-02-08 00:36:49 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 00:36:53 +0100 | foul_owl | (~kerry@23.82.194.143) (Ping timeout: 256 seconds) |
2022-02-08 00:38:10 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-02-08 00:38:18 +0100 | <Axman6> | we should have that in @where |
2022-02-08 00:39:02 +0100 | <int-e> | @help where+ |
2022-02-08 00:39:03 +0100 | <lambdabot> | where+ <key> <elem>. Define an association |
2022-02-08 00:40:39 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 00:40:47 +0100 | <Axman6> | @where+ pdv "Parse, don't validate" - https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ |
2022-02-08 00:40:47 +0100 | <lambdabot> | It is forever etched in my memory. |
2022-02-08 00:40:52 +0100 | <Axman6> | @where pdv |
2022-02-08 00:40:52 +0100 | <lambdabot> | "Parse, don't validate" - https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ |
2022-02-08 00:43:01 +0100 | bontaq` | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 250 seconds) |
2022-02-08 00:44:33 +0100 | rtsn | (~nstr@user/rtsn) (Ping timeout: 250 seconds) |
2022-02-08 00:44:54 +0100 | <monochrom> | dibblego: I wonder if we are in agreement and there is at most an apparent disagreement. head has two sides, the implementer side vs the user side. The implementer of head cannot force the user to never say "head []", this is not under the implementer's control, so throwing is in order, what else could one do? The user of head, though, simply shouldn't let themselves use "head []", even if the behaviour is well-understood. |
2022-02-08 00:45:33 +0100 | <monochrom> | (Now enter dependent typing. It can rule out "head []" statically. Nothing to worry about!) |
2022-02-08 00:45:37 +0100 | <dibblego> | monochrom: I agree |
2022-02-08 00:46:29 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds) |
2022-02-08 00:46:31 +0100 | rtsn | (~nstr@h-155-4-221-229.NA.cust.bahnhof.se) |
2022-02-08 00:47:17 +0100 | <dibblego> | \case [] -> throw "no!"; (h:_) -> h -- we tend to agree not to do this because it is "not exceptional", where "not exceptional" has an actual meaning that diverges considerably from "not exceptional" |
2022-02-08 00:47:29 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-02-08 00:47:41 +0100 | <dibblego> | the hocus-pocus from java never gets to an actual meaning |
2022-02-08 00:49:21 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-02-08 00:52:42 +0100 | foul_owl | (~kerry@192.145.116.254) |
2022-02-08 00:54:26 +0100 | <ski> | (s/\(h:_\)/h:_/) |
2022-02-08 00:54:51 +0100 | <safinaskar> | does somebody want to win $20 000 for proving particular hypotesis on SKI calculus from Stephen Wolfram? https://writings.stephenwolfram.com/2021/06/1920-2020-and-a-20000-prize-announcing-the-s-combinato… |
2022-02-08 00:55:07 +0100 | <safinaskar> | ski: i think you will be especially interested (looking at your nick) |
2022-02-08 00:55:52 +0100 | <ski> | hm, announcing a reward tends to make me disinterested |
2022-02-08 00:59:11 +0100 | <Axman6> | it'd be enough to show you can define K and I in terms of S right? |
2022-02-08 00:59:14 +0100 | <EvanR> | this looks like son of "a new kind of science" |
2022-02-08 00:59:19 +0100 | <Axman6> | or to show that you can't |
2022-02-08 00:59:32 +0100 | <dolio> | It's pretty obvious that you can't define K. |
2022-02-08 01:00:06 +0100 | <dminuoso> | ski: Out of curiosity, why is that? |
2022-02-08 01:00:30 +0100 | <dminuoso> | Because it could be an indicator of non-triviality, or because you detest the monetary offering? |
2022-02-08 01:00:33 +0100 | <dolio> | That's why it has to change the entire idea of how the 'computation' works. |
2022-02-08 01:00:37 +0100 | <dminuoso> | Or both? |
2022-02-08 01:01:03 +0100 | <ski> | i'm not too sure. it's an observation. i think it might have to do with intrinsic vs. extrinsic motivation |
2022-02-08 01:01:12 +0100 | <EvanR> | sad that wolfram has to pay to find out this question about S combinators, while fermilab gets billions to build a neutrino cannon to shoot under america to answer questions about neutrinos |
2022-02-08 01:01:18 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-02-08 01:01:35 +0100 | img | (~img@user/img) |
2022-02-08 01:02:21 +0100 | <EvanR> | fickle market |
2022-02-08 01:04:03 +0100 | <monochrom> | Would you prefer an S cannon that shoots a lot of S's? >:) |
2022-02-08 01:04:21 +0100 | n3rdy1 | (~n3rdy1@69-222-188-145.lightspeed.sntcca.sbcglobal.net) |
2022-02-08 01:06:13 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-02-08 01:06:28 +0100 | <EvanR> | monochrom, the implementor of head can also define the type as (a, [a]) xD |
2022-02-08 01:07:15 +0100 | <EvanR> | or do we have 3 parties, the implementor, the user, and some mission control who gave the implementor their task and can't be argued with |
2022-02-08 01:07:49 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-02-08 01:07:51 +0100 | <EvanR> | (re: needing dependent types) |
2022-02-08 01:07:51 +0100 | <wavemode> | the implementor, the user, and society |
2022-02-08 01:08:44 +0100 | <EvanR> | if only the implementor were captain kirk who hangs up on mission control and does it his own way! |
2022-02-08 01:09:28 +0100 | <dminuoso> | ski: Mmm, that's still curious. Even if you dislike extrinsic motivation, you can do it from your own accord without a care of the reward. |
2022-02-08 01:09:52 +0100 | tchakka | (~tchakkazu@static-47-180-28-65.lsan.ca.frontiernet.net) |
2022-02-08 01:11:29 +0100 | <EvanR> | The best case as far as I am concerned is specific Wolfram Language code that implements the solution. |
2022-02-08 01:11:34 +0100 | <EvanR> | -- Wolfram |
2022-02-08 01:11:48 +0100 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Read error: Connection reset by peer) |
2022-02-08 01:11:57 +0100 | <EvanR> | you don't say? |
2022-02-08 01:14:56 +0100 | taylorswift2018 | (~taylorswi@115-188-158-33-fibre.sparkbb.co.nz) (Quit: Leaving) |
2022-02-08 01:23:33 +0100 | mmhat | (~mmh@55d4d31f.access.ecotel.net) (Quit: WeeChat 3.4) |
2022-02-08 01:24:10 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-02-08 01:24:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 01:24:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 01:24:48 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 01:26:12 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-08 01:28:34 +0100 | ober | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
2022-02-08 01:30:06 +0100 | <monochrom> | EvanR: Ideally, group :: [a] -> [NonEmpty a], then I don't have to use "map head (group xs)". |
2022-02-08 01:30:39 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-08 01:31:27 +0100 | <EvanR> | amen |
2022-02-08 01:32:11 +0100 | <monochrom> | Another one: "fmap read (some digit)" could be better with refinement types or dependent types. |
2022-02-08 01:33:12 +0100 | <monochrom> | Err forgot an "Eq a" constraint! |
2022-02-08 01:35:29 +0100 | <EvanR> | it's ok say this is set theory |
2022-02-08 01:36:13 +0100 | <monochrom> | Ah but Eq is a bit more than equality. It's decidable equality. Usually... |
2022-02-08 01:36:22 +0100 | <EvanR> | yeah |
2022-02-08 01:38:03 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds) |
2022-02-08 01:38:07 +0100 | <EvanR> | > pi == (4 * atan 1 :: CReal) -- B) |
2022-02-08 01:38:09 +0100 | <lambdabot> | True |
2022-02-08 01:39:18 +0100 | k8yun_ | (~k8yun@24.244.29.102) (Ping timeout: 260 seconds) |
2022-02-08 01:39:26 +0100 | <monochrom> | Someone ought to troll us with an epic continued-fraction approximation of pi so epic that CReal's == can't tell the difference :) |
2022-02-08 01:39:56 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2022-02-08 01:40:42 +0100 | <EvanR> | it would also say True due to how Eq works |
2022-02-08 01:41:02 +0100 | <dolio> | > pi == (pi - 1e-50 :: CReal) |
2022-02-08 01:41:04 +0100 | <lambdabot> | True |
2022-02-08 01:41:08 +0100 | <EvanR> | with the classic advice "just use deltas" |
2022-02-08 01:42:06 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2022-02-08 01:42:33 +0100 | <EvanR> | when they really are equal it returns True, good enough for government work |
2022-02-08 01:44:18 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-02-08 01:45:09 +0100 | <ephemient> | https://xkcd.com/217/ |
2022-02-08 01:45:16 +0100 | <monochrom> | "Truth doesn't lie." :) |
2022-02-08 01:46:24 +0100 | vysn | (~vysn@user/vysn) |
2022-02-08 01:49:20 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2022-02-08 01:51:26 +0100 | cjb | (~cjb@user/cjb) |
2022-02-08 01:54:56 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) |
2022-02-08 01:55:57 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) (Remote host closed the connection) |
2022-02-08 01:56:40 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection) |
2022-02-08 01:57:10 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-08 01:57:13 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:1f95:fc24:559b:d565) |
2022-02-08 01:57:43 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
2022-02-08 02:03:34 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-02-08 02:03:50 +0100 | <safinaskar> | monochrom: cool phrase :) |
2022-02-08 02:04:24 +0100 | <safinaskar> | monochrom: here is another one: "true means agrees with a model" |
2022-02-08 02:05:28 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-08 02:06:25 +0100 | <dibblego> | monochrom: https://hackage.haskell.org/package/digit-0.11/docs/Data-Digit-Decimal.html#v:parseDecimal |
2022-02-08 02:09:01 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) |
2022-02-08 02:10:57 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 256 seconds) |
2022-02-08 02:11:30 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2022-02-08 02:12:37 +0100 | <safinaskar> | monochrom: catMaybes $ map Data.Maybe.listToMaybe $ group xs |
2022-02-08 02:13:05 +0100 | <safinaskar> | % catMaybes $ map Data.Maybe.listToMaybe $ group [2, 2, 3, 3, 3] |
2022-02-08 02:13:06 +0100 | <yahb> | safinaskar: ; <interactive>:120:13: error:; Ambiguous occurrence `map'; It could refer to; either `Data.List.NonEmpty.map', imported from `Data.List.NonEmpty'; or `Prelude.map', imported from `Prelude' (and originally defined in `GHC.Base'); <interactive>:120:42: error:; Ambiguous occurrence `group'; It could refer to; either `Data.List.NonEmpty.group', imported from `Data.Lis |
2022-02-08 02:13:13 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-02-08 02:13:29 +0100 | <safinaskar> | % catMaybes $ Prelude.map Data.Maybe.listToMaybe $ group [2, 2, 3, 3, 3] |
2022-02-08 02:13:29 +0100 | <yahb> | safinaskar: ; <interactive>:121:50: error:; Ambiguous occurrence `group'; It could refer to; either `Data.List.NonEmpty.group', imported from `Data.List.NonEmpty'; or `Data.List.group', imported from `Data.List' (and originally defined in `base-4.15.0.0:Data.OldList') |
2022-02-08 02:13:33 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:1f95:fc24:559b:d565) (Quit: Leaving) |
2022-02-08 02:13:49 +0100 | <geekosaur> | oy |
2022-02-08 02:13:51 +0100 | <safinaskar> | % catMaybes $ Prelude.map Data.Maybe.listToMaybe $ Data.List.group [2, 2, 3, 3, 3] |
2022-02-08 02:13:51 +0100 | <yahb> | safinaskar: [2,3] |
2022-02-08 02:14:16 +0100 | <geekosaur> | now, does that actually dpo what you want? |
2022-02-08 02:14:26 +0100 | <geekosaur> | % catMaybes $ Prelude.map Data.Maybe.listToMaybe $ Data.List.group [2, 2, 3, 3, 3, 2] |
2022-02-08 02:14:26 +0100 | <yahb> | geekosaur: [2,3,2] |
2022-02-08 02:16:27 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-02-08 02:17:07 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-08 02:20:20 +0100 | alo | (~alo@user/alo) (Ping timeout: 250 seconds) |
2022-02-08 02:23:08 +0100 | safinaskar | (~quassel@109-252-91-116.nat.spd-mgts.ru) () |
2022-02-08 02:24:00 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Ping timeout: 256 seconds) |
2022-02-08 02:24:44 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-08 02:26:35 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 02:27:27 +0100 | <Inst[m]> | can i ask about tuples in haskell? |
2022-02-08 02:28:58 +0100 | <Inst> | are there standard toolsets to manipulate tuples? they look like really interesting data structures, but they seem boring in Haskell |
2022-02-08 02:29:48 +0100 | <EvanR> | XY problem sense tingling |
2022-02-08 02:30:21 +0100 | <EvanR> | tuples are pretty boring |
2022-02-08 02:30:33 +0100 | <Axman6> | They';re just the canonical product type, like Either is the canonical sum type. )nothing particularly interesting about them |
2022-02-08 02:30:58 +0100 | <EvanR> | > swap ('a',1) |
2022-02-08 02:30:59 +0100 | <lambdabot> | (1,'a') |
2022-02-08 02:31:27 +0100 | <dibblego> | > over _1 (+1) (1, 'a') |
2022-02-08 02:31:28 +0100 | <lambdabot> | (2,'a') |
2022-02-08 02:32:04 +0100 | <Inst> | ah okay, so there's ways to deal with tuples beyond fst snd defined in libs |
2022-02-08 02:32:15 +0100 | <Axman6> | % (1, Left 7) & _2 . _Left %~ show |
2022-02-08 02:32:15 +0100 | <yahb> | Axman6: (1,Left "7") |
2022-02-08 02:32:26 +0100 | <Inst> | thanks for the insight that they're just the canonical product type |
2022-02-08 02:32:32 +0100 | <Axman6> | it's one of the usual examples of why lens is useful |
2022-02-08 02:32:44 +0100 | <Axman6> | % :t _1 |
2022-02-08 02:32:44 +0100 | <yahb> | Axman6: (Field1 s t a b, Functor f) => (a -> f b) -> s -> f t |
2022-02-08 02:33:01 +0100 | <Axman6> | % :info Field1 |
2022-02-08 02:33:02 +0100 | <yahb> | Axman6: type Field1 :: * -> * -> * -> * -> Constraint; class Field1 s t a b | s -> a, t -> b, s b -> t, t a -> s where; _1 :: Lens s t a b; default _1 :: (GHC.Generics.Generic s, GHC.Generics.Generic t, Control.Lens.Tuple.GIxed Control.Lens.Tuple.N0 (GHC.Generics.Rep s) (GHC.Generics.Rep t) a b) => Lens s t a b; -- Defined in `Control.Lens.Tuple'; instance [safe] Field1 (Identity a) (Identity b) a b -- |
2022-02-08 02:34:06 +0100 | <Axman6> | https://hackage.haskell.org/package/lens-5.1/docs/Control-Lens-Tuple.html |
2022-02-08 02:35:13 +0100 | <EvanR> | lens or define a function (a -> b) -> (a,c) -> (b,c) |
2022-02-08 02:35:14 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 02:35:40 +0100 | pavonia | (~user@user/siracusa) |
2022-02-08 02:36:20 +0100 | <Axman6> | trying to decide if an instance for Field1 for NonEmpty is a dumb idea or not |
2022-02-08 02:36:43 +0100 | <EvanR> | makes sense to me xD |
2022-02-08 02:38:35 +0100 | <Inst> | also, haskell report preface is hilarious |
2022-02-08 02:38:47 +0100 | <Inst> | "2. It should be completely described via the publication of a formal syntax and semantics" |
2022-02-08 02:39:05 +0100 | <Inst> | "Haskell 2010 is the first revision to be created in this way, and new revisions are expected once per year" |
2022-02-08 02:39:44 +0100 | <EvanR> | good old haskell O' ten |
2022-02-08 02:40:20 +0100 | Null_A | (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123) |
2022-02-08 02:42:15 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2022-02-08 02:44:21 +0100 | <jackdk> | On the plus side, if a new report dropped tomorrow, there's still a good chance we could call it "Haskell 2020"... |
2022-02-08 02:44:29 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
2022-02-08 02:44:43 +0100 | <jackdk> | Axman6: do it for `Identity` too |
2022-02-08 02:45:03 +0100 | <Axman6> | the :info above says that's aready there |
2022-02-08 02:45:31 +0100 | <jackdk> | Axman6: even better |
2022-02-08 02:45:59 +0100 | <Axman6> | the instance should just be coerce |
2022-02-08 02:46:42 +0100 | <Axman6> | Looking at the lans changelog, it kinda blows my mind that it so recently "Drop[ed] support for GHC 7.10 and older." |
2022-02-08 02:47:13 +0100 | <Axman6> | pretty sure I was using 7.6 when I started learning Haskell, and 7.10 wasn't too long after that |
2022-02-08 02:49:49 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-08 02:52:32 +0100 | asivitz | (uid178348@id-178348.tinside.irccloud.com) |
2022-02-08 02:53:47 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-08 02:55:34 +0100 | deadmarshal | (~deadmarsh@95.38.117.237) |
2022-02-08 02:55:49 +0100 | n3rdy1 | (~n3rdy1@69-222-188-145.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-02-08 02:59:37 +0100 | cjb | (~cjb@user/cjb) |
2022-02-08 02:59:45 +0100 | deadmarshal | (~deadmarsh@95.38.117.237) (Ping timeout: 250 seconds) |
2022-02-08 03:00:38 +0100 | Null_A | (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123) (Remote host closed the connection) |
2022-02-08 03:00:55 +0100 | <monochrom> | @quote monochrom flies.*macro |
2022-02-08 03:00:55 +0100 | <lambdabot> | monochrom says: Time flies like an arrow. Fruit flies like a banana. Syntax rules like a macro. |
2022-02-08 03:02:31 +0100 | caasih | (sid13241@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2022-02-08 03:02:33 +0100 | alanz | (sid110616@uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
2022-02-08 03:02:39 +0100 | gmc | (sid58314@ilkley.irccloud.com) (Read error: Connection reset by peer) |
2022-02-08 03:02:40 +0100 | caasih | (sid13241@id-13241.ilkley.irccloud.com) |
2022-02-08 03:02:48 +0100 | alanz | (sid110616@id-110616.uxbridge.irccloud.com) |
2022-02-08 03:02:48 +0100 | gmc | (sid58314@id-58314.ilkley.irccloud.com) |
2022-02-08 03:06:41 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::80f1) (Ping timeout: 250 seconds) |
2022-02-08 03:07:01 +0100 | xff0x | (~xff0x@2001:1a81:532d:cf00:6935:8bd3:eb0:937d) (Ping timeout: 240 seconds) |
2022-02-08 03:07:35 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 03:07:35 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 03:07:35 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 03:07:47 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2022-02-08 03:09:15 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:5f96:9e03:4e30:341d) |
2022-02-08 03:09:26 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2022-02-08 03:12:09 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds) |
2022-02-08 03:12:23 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-08 03:14:57 +0100 | califax- | (~califax@user/califx) |
2022-02-08 03:15:43 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2022-02-08 03:15:57 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-02-08 03:19:14 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-02-08 03:19:21 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-02-08 03:19:21 +0100 | califax- | califax |
2022-02-08 03:19:47 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-02-08 03:22:44 +0100 | dajoer | (~david@user/gvx) |
2022-02-08 03:23:29 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 256 seconds) |
2022-02-08 03:25:45 +0100 | lemonsni- | (~lemonsnic@86.4.248.115) |
2022-02-08 03:25:51 +0100 | nunggu | (~q@user/nunggu) (Ping timeout: 276 seconds) |
2022-02-08 03:25:51 +0100 | tiferrei | (~tiferrei@user/tiferrei) (Ping timeout: 276 seconds) |
2022-02-08 03:26:00 +0100 | razetime | (~quassel@49.207.209.26) |
2022-02-08 03:26:19 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 03:26:19 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
2022-02-08 03:26:38 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-02-08 03:27:06 +0100 | nunggu | (~q@user/nunggu) |
2022-02-08 03:28:04 +0100 | tiferrei | (~tiferrei@user/tiferrei) |
2022-02-08 03:29:29 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
2022-02-08 03:30:19 +0100 | justAGuest | (~justAGues@136.206.5.117) |
2022-02-08 03:31:18 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
2022-02-08 03:31:18 +0100 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) |
2022-02-08 03:31:59 +0100 | Null_A | (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123) |
2022-02-08 03:34:38 +0100 | justAGuest | (~justAGues@136.206.5.117) (Client Quit) |
2022-02-08 03:49:15 +0100 | nunggu | (~q@user/nunggu) (Ping timeout: 276 seconds) |
2022-02-08 03:51:14 +0100 | nunggu | (~q@user/nunggu) |
2022-02-08 03:55:58 +0100 | mbuf | (~Shakthi@122.178.191.223) |
2022-02-08 03:57:48 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) |
2022-02-08 03:59:27 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) (Remote host closed the connection) |
2022-02-08 03:59:45 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) |
2022-02-08 04:00:38 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-08 04:02:15 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 04:02:48 +0100 | Null_A | (~null_a@2601:645:8700:2290:6473:b18:2fbd:1123) (Remote host closed the connection) |
2022-02-08 04:09:32 +0100 | sshine` | sshine |
2022-02-08 04:15:41 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2022-02-08 04:15:58 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2022-02-08 04:22:14 +0100 | dolio | (~dolio@130.44.130.54) (Read error: Connection reset by peer) |
2022-02-08 04:22:30 +0100 | dolio | (~dolio@130.44.130.54) |
2022-02-08 04:23:06 +0100 | foul_owl | (~kerry@192.145.116.254) (Ping timeout: 260 seconds) |
2022-02-08 04:27:11 +0100 | dolio | (~dolio@130.44.130.54) (Client Quit) |
2022-02-08 04:28:09 +0100 | mvr_ | (uid36976@id-36976.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-08 04:28:10 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-08 04:33:30 +0100 | dolio | (~dolio@130.44.130.54) |
2022-02-08 04:38:17 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
2022-02-08 04:39:02 +0100 | m5zs7k | (aquares@web10.mydevil.net) |
2022-02-08 04:40:40 +0100 | foul_owl | (~kerry@94.140.8.224) |
2022-02-08 04:42:16 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-02-08 04:43:29 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-02-08 04:43:32 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-08 04:44:47 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-02-08 04:44:47 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-02-08 04:44:47 +0100 | finn_elija | FinnElija |
2022-02-08 04:48:10 +0100 | td_ | (~td@muedsl-82-207-238-072.citykom.de) (Ping timeout: 256 seconds) |
2022-02-08 04:50:01 +0100 | td_ | (~td@muedsl-82-207-238-149.citykom.de) |
2022-02-08 04:50:38 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-02-08 04:51:54 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-08 04:55:05 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) |
2022-02-08 05:00:23 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds) |
2022-02-08 05:04:08 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-02-08 05:04:20 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2022-02-08 05:06:03 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-08 05:11:06 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 05:15:58 +0100 | unyu | (~pyon@user/pyon) (Quit: WeeChat 3.4) |
2022-02-08 05:17:44 +0100 | unyu | (~pyon@user/pyon) |
2022-02-08 05:20:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 05:21:14 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 05:21:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 05:21:51 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 05:21:51 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 05:22:03 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 05:25:09 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 05:25:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 05:25:54 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 05:30:37 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-02-08 05:42:02 +0100 | yuvi | (~uv125@192.54.96.185) |
2022-02-08 05:43:20 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::80f1) |
2022-02-08 05:45:40 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-02-08 05:48:49 +0100 | <yuvi> | hi! im new here |
2022-02-08 05:49:17 +0100 | <Axman6> | Hello! |
2022-02-08 05:49:50 +0100 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) (Quit: Chai-T-Rex) |
2022-02-08 05:50:24 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-02-08 05:52:35 +0100 | <Axman6> | yuvi: was there anything we can help you with or you just here to hang with the cool kids |
2022-02-08 05:55:02 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Ping timeout: 260 seconds) |
2022-02-08 05:55:19 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) |
2022-02-08 05:55:25 +0100 | <yuvi> | Axman6: haha both. im stuck on my programming assignment and was curious what irc is like. ill tell it to you |
2022-02-08 05:56:42 +0100 | <yuvi> | so i need to implement my own version of isPrefixOf from Data.List. but the catch is i can only use foldr and map, and recursion is banned |
2022-02-08 05:57:08 +0100 | <yuvi> | the type is startsWith :: String -> String -> Bool |
2022-02-08 05:57:10 +0100 | <Axman6> | go ahead, thought bare in mind that while we're happyu to help you find the solution, we're not going to give it to you (and there is a pretty high chance that your lecturer is in this channel) |
2022-02-08 05:57:23 +0100 | <yuvi> | dont worry i understand :-) |
2022-02-08 05:57:24 +0100 | <Axman6> | That's a fun one! |
2022-02-08 05:57:53 +0100 | <Axman6> | So what have you tried? |
2022-02-08 05:58:10 +0100 | <Axman6> | and what's your understanding of what foldr does? |
2022-02-08 05:58:30 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:c1b4:4e62:c0e4:304a) |
2022-02-08 05:59:02 +0100 | <yuvi> | ive been given a hint that in order to do this without recursion, foldr must itself return a function, which is hard for me to conceptualize |
2022-02-08 05:59:21 +0100 | phma | (phma@2001:5b0:215a:adf8:f4aa:f392:c0b4:ceef) (Read error: Connection reset by peer) |
2022-02-08 05:59:27 +0100 | <yuvi> | my guess for the structure of the function is startsWith s1 s2 = (foldr (???) ??? s1) s2 |
2022-02-08 05:59:43 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2022-02-08 06:00:06 +0100 | <yuvi> | my understanding of foldr is that it is a way to reduce a list to a single value using an accumulator. im not sure how a fold can return a function |
2022-02-08 06:00:47 +0100 | phma | (phma@2001:5b0:211f:7e68:f18f:96de:b488:61b7) |
2022-02-08 06:01:05 +0100 | unyu | (~pyon@user/pyon) (Quit: brb) |
2022-02-08 06:03:09 +0100 | nunggu | (~q@user/nunggu) (Ping timeout: 276 seconds) |
2022-02-08 06:03:16 +0100 | <dibblego> | functions are values |
2022-02-08 06:04:47 +0100 | nunggu | (~q@user/nunggu) |
2022-02-08 06:05:04 +0100 | <monochrom> | No, the "redcuse by accumulator" model is utterly useless for this. |
2022-02-08 06:05:13 +0100 | haskell_ | (~haskell@172.56.42.14) |
2022-02-08 06:05:25 +0100 | <monochrom> | That simple model is OK for simple examples like "1+(2+(3+...", sure. |
2022-02-08 06:05:27 +0100 | <dibblego> | also that, but "single value" is fine, and since functions are values, "single function" is also fine |
2022-02-08 06:05:31 +0100 | <monochrom> | But not this advanced question. |
2022-02-08 06:05:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-02-08 06:07:20 +0100 | haskell_ | (~haskell@172.56.42.14) (Remote host closed the connection) |
2022-02-08 06:08:24 +0100 | <Inst> | yuvi: just do it with recursion anyways |
2022-02-08 06:08:34 +0100 | <Inst> | then try to think of how you can change it to a foldr |
2022-02-08 06:08:45 +0100 | <Inst> | since foldr is basically just automated recursion |
2022-02-08 06:10:15 +0100 | <monochrom> | Yes I write my own recursion then see how the code fits foldr's recursion. |
2022-02-08 06:11:16 +0100 | <ski> | hm .. can you use pattern-matching (on empty list and non-empty list) ? |
2022-02-08 06:11:26 +0100 | <yuvi> | ok. i did have to do it with recursion for a previous problem already. for that i compared the two heads of s1 and s2 and "anded" them with startsWith on the tails |
2022-02-08 06:11:36 +0100 | <yuvi> | yes pattern matching is permitted |
2022-02-08 06:11:43 +0100 | <ski> | that makes it a lot easier |
2022-02-08 06:11:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 06:11:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 06:11:52 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 06:12:51 +0100 | <yuvi> | one problem im thinking of when converting from recursion to foldr is how do i save the boolean value and iterate over the list at the same time. i cant figure out what the type of the accumulator should be |
2022-02-08 06:12:58 +0100 | <ski> | (if you could only traverse the lists via `foldr' and `map', then i wouldn't class this as a beginner problem) |
2022-02-08 06:13:27 +0100 | <dibblego> | another intermediate step: write this with foldr :: [a] -> Maybe (a, [a]) |
2022-02-08 06:13:28 +0100 | <yuvi> | i see. this is my first course in haskell and its week 2 LMAO |
2022-02-08 06:13:46 +0100 | <dibblego> | we do a similar exercise on day 1 of fp-course |
2022-02-08 06:14:07 +0100 | <dibblego> | with some hand-holding and a proper explanation of foldr |
2022-02-08 06:15:25 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 256 seconds) |
2022-02-08 06:15:42 +0100 | <Axman6> | > foldr f z [1,2,3] :: Expr |
2022-02-08 06:15:44 +0100 | <lambdabot> | f 1 (f 2 (f 3 z)) |
2022-02-08 06:16:39 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-08 06:17:30 +0100 | <Axman6> | yuvi: just as a heads up, this problem is not exactly trivial, and I would probably get it wrong on my first try, so don't get lulled into a sense of simplicity |
2022-02-08 06:18:08 +0100 | <Axman6> | one of the first difficulties is deciding which od the lists you want to recurse over, the needle or the haystack |
2022-02-08 06:18:09 +0100 | <monochrom> | https://ertes.eu/tutorial/foldr.html#foldr shows a useful method. |
2022-02-08 06:18:44 +0100 | <Inst> | wait, is isPrefixOf defined via foldr? |
2022-02-08 06:18:53 +0100 | <dibblego> | dunno is it? |
2022-02-08 06:18:55 +0100 | <yuvi> | Inst: it is defined using recursion |
2022-02-08 06:19:15 +0100 | <monochrom> | In your case, you should think in terms of "isPrefixOf [] = \??? -> ???", "isPrefixOf (x:xs) = \y -> case y of ...???" |
2022-02-08 06:19:19 +0100 | <Axman6> | but is can be defined using foldr |
2022-02-08 06:19:20 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-02-08 06:19:57 +0100 | <Axman6> | monochrom++ |
2022-02-08 06:20:39 +0100 | <monochrom> | To be sure, this is an advanced question (on ground that it requires more abstract thinking, less intuition). I didn't know it could be done until "Hint: return a function". |
2022-02-08 06:20:56 +0100 | <Inst> | btw yuvi: not sure if this is a tip or if i've just being dense |
2022-02-08 06:21:00 +0100 | <Inst> | are you familiar with lambdas? |
2022-02-08 06:21:12 +0100 | <yuvi> | Inst: yes |
2022-02-08 06:21:18 +0100 | <monochrom> | But I have done an even more unbelievable one such as "foldl is a foldr too" so meh. |
2022-02-08 06:22:45 +0100 | <Inst> | also, is it a bad idea to post a GHC feature request asking for =@ to get added to Data.Foldables as a synonym for elem? |
2022-02-08 06:23:44 +0100 | <ski> | why not ⌜(∈)⌝, then ? |
2022-02-08 06:24:49 +0100 | <monochrom> | It's a bad idea because it doesn't belong to GHC feature request. It's a library feature request. |
2022-02-08 06:24:52 +0100 | <Inst> | i see |
2022-02-08 06:25:00 +0100 | <Inst> | is it reasonable to look for a library feature request and post it? |
2022-02-08 06:25:16 +0100 | <monochrom> | GHC feature request would be "may I have predicate subtypes" for example. |
2022-02-08 06:25:40 +0100 | <monochrom> | Or "may I have COBOL syntax" |
2022-02-08 06:27:11 +0100 | <Inst> | also, just curious, i like yuvi's question |
2022-02-08 06:27:17 +0100 | <Inst> | i don't want to solve it for her/him |
2022-02-08 06:27:33 +0100 | <Inst> | if lambdas are allowed, it's possible to do something really degenerate |
2022-02-08 06:27:57 +0100 | tommd | (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds) |
2022-02-08 06:28:14 +0100 | <monochrom> | Ugh allowing lambdas is not degenerate. |
2022-02-08 06:28:28 +0100 | <monochrom> | It is disallowing lambda that's degenerate. Look at COBOL for example. |
2022-02-08 06:28:50 +0100 | <monochrom> | 1st-order-only or even 0th-order-only. |
2022-02-08 06:29:25 +0100 | <monochrom> | In the same sense that, for example, 0-dimension vector space is a degenerate vector space. |
2022-02-08 06:30:33 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) |
2022-02-08 06:30:45 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-02-08 06:31:11 +0100 | k8yun_ | (~k8yun@24.244.29.99) |
2022-02-08 06:34:24 +0100 | <Inst> | it should be possible to use the accumulator to store information, and use a lambda that takes \x y to analyze the information on the accumulator |
2022-02-08 06:34:40 +0100 | ski | never really understood why some people want to exclude such degeneracy cases from falling under the definition |
2022-02-08 06:34:42 +0100 | <Inst> | it's just really ugly though |
2022-02-08 06:35:10 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2022-02-08 06:35:53 +0100 | <EvanR> | that's why they're called turing tarpits and not turing um taj mahals |
2022-02-08 06:35:59 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 250 seconds) |
2022-02-08 06:37:23 +0100 | haskell_ | (~haskell@172.56.42.64) |
2022-02-08 06:37:47 +0100 | haskell_ | (~haskell@172.56.42.64) (Remote host closed the connection) |
2022-02-08 06:38:54 +0100 | nunggu | (~q@user/nunggu) (Ping timeout: 276 seconds) |
2022-02-08 06:40:19 +0100 | nunggu | (~q@user/nunggu) |
2022-02-08 06:43:28 +0100 | <Inst> | can also consider nested lambdas |
2022-02-08 06:51:23 +0100 | nunggu | (~q@user/nunggu) (Remote host closed the connection) |
2022-02-08 06:51:42 +0100 | <dsal> | Inst: Are you wanting a paramorphism? |
2022-02-08 06:51:44 +0100 | nunggu | (~q@user/nunggu) |
2022-02-08 06:52:10 +0100 | <dsal> | It's unclear exactly what you're trying to do, but if you've not read the barbed wire paper, that might help. |
2022-02-08 06:53:58 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 06:54:05 +0100 | <ski> | Inst isn't the one wanting to do it, really |
2022-02-08 06:54:44 +0100 | haskell_ | (~haskell@172.56.42.179) |
2022-02-08 06:55:15 +0100 | haskell_ | (~haskell@172.56.42.179) (Remote host closed the connection) |
2022-02-08 06:57:25 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2022-02-08 06:57:31 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 06:59:17 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:740e:1010:1471:f716) (Ping timeout: 240 seconds) |
2022-02-08 07:01:54 +0100 | deadmarshal | (~deadmarsh@95.38.117.237) |
2022-02-08 07:02:12 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-02-08 07:04:29 +0100 | rusrushal13 | (~rusrushal@2401:4900:30b1:b349:313f:fa70:9419:b887) |
2022-02-08 07:05:32 +0100 | <yuvi> | ill be back tomorrow if i still cant figure it out. thanks all |
2022-02-08 07:05:42 +0100 | yuvi | (~uv125@192.54.96.185) (Quit: WeeChat 2.8) |
2022-02-08 07:07:58 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-02-08 07:10:09 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 07:11:55 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-08 07:14:41 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-02-08 07:19:07 +0100 | myme | (~myme@2a01:799:d5a:cd00:fb5a:85b7:3647:e056) (Ping timeout: 268 seconds) |
2022-02-08 07:19:59 +0100 | myme | (~myme@2a01:799:d5a:cd00:4746:bc4e:ee58:44d9) |
2022-02-08 07:23:42 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:5f96:9e03:4e30:341d) (Ping timeout: 260 seconds) |
2022-02-08 07:24:27 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:7b8c:668:4058:35b) |
2022-02-08 07:26:35 +0100 | rusrushal13 | (~rusrushal@2401:4900:30b1:b349:313f:fa70:9419:b887) (Ping timeout: 256 seconds) |
2022-02-08 07:27:57 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) |
2022-02-08 07:28:30 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-08 07:33:07 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:2d5c:e7c5:18a:2cdc) |
2022-02-08 07:37:50 +0100 | <hololeap> | does anyone know of a framework to deploy threepenny-gui other than electron? I remember seeing an alternative but I can't remember the name |
2022-02-08 07:39:59 +0100 | FroskyArr | (~froskyarr@120.239.9.146) |
2022-02-08 07:41:05 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::80f1) (Ping timeout: 256 seconds) |
2022-02-08 07:43:47 +0100 | foul_owl | (~kerry@94.140.8.224) (Ping timeout: 250 seconds) |
2022-02-08 07:46:48 +0100 | shriekingnoise | (~shrieking@201.231.16.156) (Quit: Quit) |
2022-02-08 07:52:20 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 07:58:21 +0100 | foul_owl | (~kerry@94.140.8.51) |
2022-02-08 08:02:29 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-08 08:04:34 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-02-08 08:07:04 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-02-08 08:07:43 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) |
2022-02-08 08:11:13 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-02-08 08:13:36 +0100 | k8yun_ | (~k8yun@24.244.29.99) (Read error: Connection reset by peer) |
2022-02-08 08:14:57 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:7b8c:668:4058:35b) (Ping timeout: 240 seconds) |
2022-02-08 08:16:13 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:4e49:abcb:9c05:c4b8) |
2022-02-08 08:22:13 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 08:25:46 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 260 seconds) |
2022-02-08 08:25:53 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1001:bfbe:d16:fcbe) |
2022-02-08 08:27:03 +0100 | frosky_ | (~froskyarr@120.239.9.146) |
2022-02-08 08:28:25 +0100 | yauhsien_ | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-02-08 08:30:26 +0100 | FroskyArr | (~froskyarr@120.239.9.146) (Ping timeout: 260 seconds) |
2022-02-08 08:36:52 +0100 | ardell | (~ardell@user/ardell) |
2022-02-08 08:37:14 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
2022-02-08 08:39:12 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 08:39:41 +0100 | frosky_ | (~froskyarr@120.239.9.146) (Ping timeout: 256 seconds) |
2022-02-08 08:40:42 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) (Remote host closed the connection) |
2022-02-08 08:40:59 +0100 | michalz | (~michalz@185.246.204.75) |
2022-02-08 08:43:48 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) |
2022-02-08 08:44:22 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-02-08 08:47:08 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-08 08:47:48 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) |
2022-02-08 08:49:54 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-08 08:50:38 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Max SendQ exceeded) |
2022-02-08 08:51:05 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-08 08:55:58 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-08 08:56:35 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-02-08 08:56:40 +0100 | kuribas | (~user@ptr-25vy0i8mlszjpxncneu.18120a2.ip6.access.telenet.be) |
2022-02-08 08:57:53 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-02-08 08:59:08 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-08 09:03:21 +0100 | alp | (~alp@user/alp) |
2022-02-08 09:07:39 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:2d5c:e7c5:18a:2cdc) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-08 09:15:34 +0100 | ubert | (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) (Quit: ubert) |
2022-02-08 09:15:42 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 260 seconds) |
2022-02-08 09:19:16 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-02-08 09:21:38 +0100 | wavemode | (~wavemode@2601:241:0:fc90:7b48:d1cc:a5e5:a126) (Ping timeout: 256 seconds) |
2022-02-08 09:22:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 09:23:27 +0100 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-02-08 09:23:51 +0100 | alp | (~alp@user/alp) |
2022-02-08 09:25:06 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-02-08 09:26:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 09:28:47 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-02-08 09:31:07 +0100 | MajorBiscuit | (~MajorBisc@c-001-001-054.client.tudelft.eduvpn.nl) |
2022-02-08 09:31:34 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-02-08 09:33:39 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 250 seconds) |
2022-02-08 09:36:31 +0100 | mixfix41 | (~sdenyninn@user/mixfix41) |
2022-02-08 09:36:39 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-02-08 09:37:05 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2022-02-08 09:41:15 +0100 | AlexisTP | (~AlexisTP3@92.57.44.63) |
2022-02-08 09:43:49 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 250 seconds) |
2022-02-08 09:43:58 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) (Ping timeout: 256 seconds) |
2022-02-08 09:45:49 +0100 | AlexisTP2 | (~AlexisTP3@92.57.44.63) |
2022-02-08 09:48:15 +0100 | AlexisTP | (~AlexisTP3@92.57.44.63) (Ping timeout: 256 seconds) |
2022-02-08 09:48:54 +0100 | AlexisTP2 | (~AlexisTP3@92.57.44.63) (Client Quit) |
2022-02-08 09:48:55 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-08 09:49:08 +0100 | AlexisTP2 | (~AlexisTP3@92.57.44.63) |
2022-02-08 09:49:29 +0100 | rando25892 | (~homefame@user/rando25892) (Quit: enemy at the gate) |
2022-02-08 09:51:37 +0100 | AlexisTP2 | AlexisTP |
2022-02-08 09:52:04 +0100 | chele | (~chele@user/chele) |
2022-02-08 09:52:30 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:1dc4:f5c4:a458:81) (Remote host closed the connection) |
2022-02-08 09:52:52 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-02-08 09:59:13 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2022-02-08 10:02:07 +0100 | AlexisTP | (~AlexisTP3@92.57.44.63) (Quit: Leaving) |
2022-02-08 10:02:40 +0100 | mixfix41 | (~sdenyninn@user/mixfix41) (Ping timeout: 256 seconds) |
2022-02-08 10:02:51 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 10:02:56 +0100 | <dminuoso> | Mmm, is there a tool/way to vendor the entire transitive dependency graph of a cabal package? |
2022-02-08 10:03:06 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 10:03:12 +0100 | FragByte | (~christian@user/fragbyte) |
2022-02-08 10:03:27 +0100 | <dminuoso> | Background is, Im toying with the idea of checking the dependency graph in as a way to be able to audit changes when I update that dependency graph |
2022-02-08 10:03:38 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 10:04:18 +0100 | <dminuoso> | And while initially I played around the idea of equipping cabal with the tools, it might be much much easier to do it this way because it would amount to some kind of `cabal update && cabal vendor-dependency-graph && git diff` |
2022-02-08 10:05:08 +0100 | AlexisTP | (~AlexisTP3@92.57.44.63) |
2022-02-08 10:07:57 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:c1b4:4e62:c0e4:304a) (Ping timeout: 240 seconds) |
2022-02-08 10:11:16 +0100 | <ephemient> | you want something more than `cabal freeze`? |
2022-02-08 10:12:24 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 10:12:28 +0100 | <dminuoso> | Yes, it's not as much the locking part Im concerned about, but being able to vet *source* differences across updates in my dependency graph |
2022-02-08 10:14:43 +0100 | <dminuoso> | Incidentally it also decouples your build process from hackage improving offline builds, and it avoids issues like having some kind of global cabal store on a builder that can be updated causing friction |
2022-02-08 10:17:33 +0100 | <ephemient> | I suppose you could download and unpack all dependencies and tie them together with a `cabal.project` |
2022-02-08 10:17:48 +0100 | <ephemient> | I don't know if there's any tooling that will do that for you though |
2022-02-08 10:17:50 +0100 | <dminuoso> | Yup, that's the idea. :) |
2022-02-08 10:27:53 +0100 | __monty__ | (~toonn@user/toonn) |
2022-02-08 10:30:53 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-02-08 10:34:35 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-02-08 10:38:46 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-02-08 10:39:04 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-02-08 10:41:38 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 10:42:19 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 10:44:37 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-02-08 10:45:21 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-02-08 10:50:20 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 10:51:09 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Remote host closed the connection) |
2022-02-08 10:51:27 +0100 | max22- | (~maxime@2a01cb08833598001ee79bb16bcae2a5.ipv6.abo.wanadoo.fr) |
2022-02-08 10:53:01 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:58f7:de82:9fa8:330) |
2022-02-08 10:53:05 +0100 | notzmv | (~zmv@user/notzmv) |
2022-02-08 10:57:26 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:58f7:de82:9fa8:330) (Ping timeout: 260 seconds) |
2022-02-08 10:59:09 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:216f:fa56:c9b1:3e43) |
2022-02-08 11:03:06 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-02-08 11:04:04 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-02-08 11:08:59 +0100 | thevishy | (~Nishant@2405:201:f005:c007:e0f1:5635:e895:47c6) |
2022-02-08 11:09:01 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 11:11:03 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 11:11:05 +0100 | dffo^ | (~dffo@128-092-182-020.biz.spectrum.com) (Remote host closed the connection) |
2022-02-08 11:13:43 +0100 | zaquest | (~notzaques@5.130.79.72) |
2022-02-08 11:15:25 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-02-08 11:16:29 +0100 | fendor | (~fendor@91.141.68.59.wireless.dyn.drei.com) |
2022-02-08 11:26:56 +0100 | jollygood2 | (~bc8147f2@cerf.good1.com) |
2022-02-08 11:31:42 +0100 | dsrt^ | (~dsrt@128-092-182-020.biz.spectrum.com) |
2022-02-08 11:33:19 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:4989:132:1295:a68) |
2022-02-08 11:35:39 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-08 11:39:50 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:4989:132:1295:a68) (Ping timeout: 252 seconds) |
2022-02-08 11:42:36 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-08 11:49:34 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 11:50:52 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-02-08 11:55:48 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-02-08 11:56:19 +0100 | ardell | (~ardell@user/ardell) (Ping timeout: 256 seconds) |
2022-02-08 11:56:21 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 11:57:43 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2022-02-08 11:58:42 +0100 | <jackdk> | nix, perhaps? |
2022-02-08 11:58:48 +0100 | slowtyper | (~slowtyper@user/slowtyper) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-02-08 11:59:04 +0100 | slowtyper | (~slowtyper@user/slowtyper) |
2022-02-08 11:59:35 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-02-08 12:00:27 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:385f:7529:31a:7cc) |
2022-02-08 12:01:26 +0100 | <DigitalKiwi> | i was thinking that but everyone gets mad here when we suggest it |
2022-02-08 12:03:55 +0100 | qwedfg | (~qwedfg@user/qwedfg) (Quit: ZNC - https://znc.in) |
2022-02-08 12:04:55 +0100 | qwedfg | (~qwedfg@user/qwedfg) |
2022-02-08 12:05:27 +0100 | <geekosaur> | nix has its place. it's just not *my* place |
2022-02-08 12:07:25 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:385f:7529:31a:7cc) (Ping timeout: 256 seconds) |
2022-02-08 12:16:35 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-08 12:17:14 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 260 seconds) |
2022-02-08 12:19:24 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:49ca:6d07:64a:8665) |
2022-02-08 12:26:02 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:49ca:6d07:64a:8665) (Ping timeout: 252 seconds) |
2022-02-08 12:28:20 +0100 | rtsn | (~nstr@h-155-4-221-229.NA.cust.bahnhof.se) (Changing host) |
2022-02-08 12:28:20 +0100 | rtsn | (~nstr@user/rtsn) |
2022-02-08 12:29:21 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:68b8:ca9:8601:35d3) |
2022-02-08 12:29:42 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 12:32:38 +0100 | Guest91 | (~Guest91@103.231.89.231) |
2022-02-08 12:32:49 +0100 | unyu | (~pyon@user/pyon) |
2022-02-08 12:32:55 +0100 | rusrushal13 | (~rusrushal@2409:4056:108:9c3b:d7fd:94d2:1ba2:efdd) |
2022-02-08 12:33:50 +0100 | Guest91 | (~Guest91@103.231.89.231) (Client Quit) |
2022-02-08 12:34:56 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-02-08 12:36:08 +0100 | unyu | (~pyon@user/pyon) (Client Quit) |
2022-02-08 12:38:40 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-08 12:39:23 +0100 | sheb_ | (~sheb@31.223.228.71) (Quit: Leaving) |
2022-02-08 12:40:37 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:68b8:ca9:8601:35d3) (Ping timeout: 240 seconds) |
2022-02-08 12:47:47 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:7c1f:c247:2b7b:d046) |
2022-02-08 12:48:46 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 12:49:17 +0100 | ober | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) |
2022-02-08 12:49:54 +0100 | ober | (~brian@c-73-68-74-41.hsd1.ma.comcast.net) (Client Quit) |
2022-02-08 12:50:24 +0100 | <maerwald> | haha |
2022-02-08 12:50:57 +0100 | quintasan | (~quassel@quintasan.pl) (Ping timeout: 256 seconds) |
2022-02-08 12:53:33 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-08 12:55:40 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-02-08 12:56:24 +0100 | rusrushal13 | (~rusrushal@2409:4056:108:9c3b:d7fd:94d2:1ba2:efdd) (Ping timeout: 256 seconds) |
2022-02-08 12:56:41 +0100 | quintasan | (~quassel@quintasan.pl) |
2022-02-08 12:56:53 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) |
2022-02-08 12:59:37 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-02-08 13:02:18 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2022-02-08 13:03:16 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 13:03:53 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:216f:fa56:c9b1:3e43) (Remote host closed the connection) |
2022-02-08 13:04:05 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:947b:22d6:c94:9589) |
2022-02-08 13:07:41 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-02-08 13:12:17 +0100 | rusrushal13 | (~rusrushal@2401:4900:447d:f2bb:d612:874b:92ea:4923) |
2022-02-08 13:12:22 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-02-08 13:13:00 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-02-08 13:13:09 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-08 13:13:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 13:14:00 +0100 | <romesrf> | o/ |
2022-02-08 13:14:55 +0100 | mncheckm | (~mncheck@193.224.205.254) (Quit: Leaving) |
2022-02-08 13:24:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 13:25:59 +0100 | thyriaen | (~thyriaen@simnet-nat-pool-185-130-54-208.stargrpns.pp.ua) |
2022-02-08 13:26:43 +0100 | <thyriaen> | howdy friends, is there a haskell prelude documentation on linux where I can look up specific functions like on a man page ? |
2022-02-08 13:26:48 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-02-08 13:26:59 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 13:27:22 +0100 | <thyriaen> | I mean something like hoogle or hackage but as a linux terminal utility |
2022-02-08 13:27:49 +0100 | <merijn> | thyriaen: Hoogle has a commandline client :) |
2022-02-08 13:27:58 +0100 | <lep> | ghci provides a built-in :doc command, and hoogle cli should do it aswell |
2022-02-08 13:28:16 +0100 | <geekosaur> | also https://github.com/lazamar/haskell-docs-cli |
2022-02-08 13:28:29 +0100 | <merijn> | Getting it running the first time is a bit of a hassle, but it does exist. In fact, you can make it index stuff Hoogle doesn't index too :p |
2022-02-08 13:29:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2022-02-08 13:29:12 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-02-08 13:29:26 +0100 | <thyriaen> | ah perfect, thanks lep it was what i was looking for |
2022-02-08 13:29:37 +0100 | <thyriaen> | i will give hoogle a shot if that won't be enough for me |
2022-02-08 13:30:03 +0100 | <lep> | yeah it's very nice. before ghci had :doc i had a hoogle alias in my .ghci-file |
2022-02-08 13:30:57 +0100 | <boxscape_> | are haddock comments stored in the interface files? |
2022-02-08 13:31:11 +0100 | <geekosaur> | not currently |
2022-02-08 13:31:20 +0100 | <boxscape_> | where does ghci get them from? |
2022-02-08 13:31:51 +0100 | <geekosaur> | there's an extended interface file spec in development which includes them; I don't *think* it's in play yet though |
2022-02-08 13:32:01 +0100 | <boxscape_> | okay |
2022-02-08 13:32:14 +0100 | <geekosaur> | although maybe it is and ghci is using it |
2022-02-08 13:32:34 +0100 | <geekosaur> | I kinda lost trackof the current state of .hie files |
2022-02-08 13:33:12 +0100 | <thyriaen> | can i list all prelude functions within ghci with doc somehow ? |
2022-02-08 13:36:14 +0100 | <boxscape_> | I think if that were possible it would be part of the :browse command, but the browse command doesn't seem to allow you to display docs |
2022-02-08 13:40:00 +0100 | <polyphem> | thyriaen: hdc :mi Base.Prelude |
2022-02-08 13:40:54 +0100 | <thyriaen> | i ment browse, it is perfect thanks |
2022-02-08 13:42:49 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 13:44:31 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:6197:e762:8e5b:d7b9) |
2022-02-08 13:47:57 +0100 | unyu | (~pyon@user/pyon) |
2022-02-08 13:55:31 +0100 | yauhsien | (~yauhsien@61-231-29-69.dynamic-ip.hinet.net) |
2022-02-08 13:57:00 +0100 | <jollygood2> | is hoogle included with ghc |
2022-02-08 13:57:23 +0100 | <jollygood2> | cli hoogle |
2022-02-08 13:59:07 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-02-08 13:59:30 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-02-08 14:00:53 +0100 | tiferrei | (~tiferrei@user/tiferrei) (Remote host closed the connection) |
2022-02-08 14:01:38 +0100 | tiferrei | (~tiferrei@user/tiferrei) |
2022-02-08 14:03:35 +0100 | thyriaen | (~thyriaen@simnet-nat-pool-185-130-54-208.stargrpns.pp.ua) (Remote host closed the connection) |
2022-02-08 14:06:37 +0100 | quintasan | (~quassel@quintasan.pl) (Ping timeout: 240 seconds) |
2022-02-08 14:07:10 +0100 | <merijn> | jollygood2: No, Hoogle is a standalone program |
2022-02-08 14:07:31 +0100 | <merijn> | @hackage hoogle |
2022-02-08 14:07:31 +0100 | <lambdabot> | https://hackage.haskell.org/package/hoogle |
2022-02-08 14:07:50 +0100 | <merijn> | jollygood2: The cabal package for the webservice also includes the CLI executable |
2022-02-08 14:15:29 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds) |
2022-02-08 14:16:07 +0100 | bontaq` | (~user@ool-45779fe5.dyn.optonline.net) |
2022-02-08 14:20:55 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-02-08 14:23:22 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-02-08 14:24:01 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-02-08 14:25:48 +0100 | jumper149 | (~jumper149@base.felixspringer.xyz) |
2022-02-08 14:27:40 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-02-08 14:27:55 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-02-08 14:28:16 +0100 | whatif | (~user@123.123.222.32) |
2022-02-08 14:28:22 +0100 | max22- | (~maxime@2a01cb08833598001ee79bb16bcae2a5.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2022-02-08 14:29:16 +0100 | whatif | (~user@123.123.222.32) (Client Quit) |
2022-02-08 14:32:26 +0100 | mixfix41 | (~sdenyninn@user/mixfix41) |
2022-02-08 14:32:44 +0100 | rusrushal13 | (~rusrushal@2401:4900:447d:f2bb:d612:874b:92ea:4923) (Ping timeout: 256 seconds) |
2022-02-08 14:33:28 +0100 | bontaq` | bontaq |
2022-02-08 14:44:03 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2022-02-08 14:45:36 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) |
2022-02-08 14:47:02 +0100 | <Axman6> | Given an Integer, how I figure out how many bits it contains? or the index of the highest bit set? I feel like I know this... |
2022-02-08 14:47:02 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds) |
2022-02-08 14:47:03 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds) |
2022-02-08 14:47:11 +0100 | <Axman6> | it's the integer log base 2 |
2022-02-08 14:47:27 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 14:47:36 +0100 | <dminuoso> | how many "bits"? |
2022-02-08 14:47:54 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) |
2022-02-08 14:48:06 +0100 | <Axman6> | yes, how many bits does the number take to represent |
2022-02-08 14:48:29 +0100 | <dminuoso> | Do you mean in terms of allocated bytes? |
2022-02-08 14:48:34 +0100 | <Axman6> | like, 64 would be 6 |
2022-02-08 14:48:49 +0100 | <Axman6> | I guess I want the index of the highest bit set |
2022-02-08 14:48:54 +0100 | <dminuoso> | bitSizeMaybe? |
2022-02-08 14:49:04 +0100 | <Axman6> | doesn't work for Integers |
2022-02-08 14:49:12 +0100 | <dminuoso> | Why not? |
2022-02-08 14:49:17 +0100 | <dminuoso> | % import Data.Bits |
2022-02-08 14:49:17 +0100 | <yahb> | dminuoso: |
2022-02-08 14:49:19 +0100 | <dminuoso> | % :t bitSizeMaybe |
2022-02-08 14:49:19 +0100 | <yahb> | dminuoso: Bits a => a -> Maybe Int |
2022-02-08 14:49:24 +0100 | <dminuoso> | % bitSizeMaybe (1 :: Integer) |
2022-02-08 14:49:25 +0100 | <yahb> | dminuoso: Nothing |
2022-02-08 14:49:28 +0100 | <Axman6> | =) |
2022-02-08 14:49:32 +0100 | <dminuoso> | Mmm |
2022-02-08 14:49:46 +0100 | <dminuoso> | Returns Nothing for types that do not have a fixed bitsize, like Integer. |
2022-02-08 14:50:33 +0100 | <merijn> | bitSize is the highest possible bit |
2022-02-08 14:50:41 +0100 | <merijn> | I think Axman wants the "highest non-zero" bit? |
2022-02-08 14:50:49 +0100 | s4msung | s5smong |
2022-02-08 14:50:52 +0100 | <Axman6> | yes |
2022-02-08 14:51:01 +0100 | <Axman6> | bitSize for Integer throws *** Exception: Data.Bits.bitSize(Integer) |
2022-02-08 14:51:23 +0100 | <dminuoso> | So some integerLog2 |
2022-02-08 14:51:48 +0100 | <Axman6> | @goofle log2 |
2022-02-08 14:51:50 +0100 | <lambdabot> | No Result Found. |
2022-02-08 14:51:56 +0100 | <dminuoso> | https://hackage.haskell.org/package/base-4.16.0.0/docs/GHC-Integer-Logarithms.html#v:integerLog2-35- |
2022-02-08 14:52:07 +0100 | <dminuoso> | There, pretty wrap that with I# back into an Int |
2022-02-08 14:52:11 +0100 | <Axman6> | ah, that'll help |
2022-02-08 14:52:13 +0100 | <merijn> | Axman6: bitSize operates on a *type*, i.e. the bitsize of the type, not of the value |
2022-02-08 14:53:01 +0100 | <dminuoso> | Axman6: Remember to correctly rule out negative Integer |
2022-02-08 14:53:08 +0100 | <dminuoso> | Or even 0. |
2022-02-08 14:53:32 +0100 | <Axman6> | yeah these integers are all positive |
2022-02-08 14:55:20 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 14:55:27 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 14:55:46 +0100 | <ski> | % map (\n -> if n == 0 then 0 else GHC.Int.I# (GHC.Integer.Logarithms.integerLog2# n) + 1) [0 ..] |
2022-02-08 14:55:51 +0100 | <yahb> | ski: [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 |
2022-02-08 14:55:56 +0100 | mvr_ | (uid36976@id-36976.tinside.irccloud.com) |
2022-02-08 15:02:59 +0100 | bjourne | (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5) |
2022-02-08 15:04:29 +0100 | oats | (~thomas@user/oats) (Quit: until later, my friends) |
2022-02-08 15:04:55 +0100 | oats | (~thomas@user/oats) |
2022-02-08 15:05:09 +0100 | <jumper149> | Do the `MonadFix` instances for `Maybe` and `Either e` really make sense? They seem very partial to me. |
2022-02-08 15:05:22 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
2022-02-08 15:05:38 +0100 | <ski> | > mfix (\_ -> Nothing) |
2022-02-08 15:05:39 +0100 | <lambdabot> | Nothing |
2022-02-08 15:05:47 +0100 | <ski> | > mfix (\xs -> Just (1:xs)) |
2022-02-08 15:05:49 +0100 | <lambdabot> | Just [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,... |
2022-02-08 15:06:05 +0100 | <ski> | > mfix (\_ -> []) |
2022-02-08 15:06:07 +0100 | <lambdabot> | [] |
2022-02-08 15:06:25 +0100 | <ski> | > map (take 4) (mfix (\xs -> [1:xs,2:xs])) |
2022-02-08 15:06:26 +0100 | <lambdabot> | [[1,1,1,1],[2,2,2,2]] |
2022-02-08 15:06:45 +0100 | <ski> | jumper149 : they do. they can't really be more total |
2022-02-08 15:06:45 +0100 | x_kuru | (~xkuru@user/xkuru) |
2022-02-08 15:07:18 +0100 | <bjourne> | ghc refuses to start due to missing package db, how do i rebuild it? |
2022-02-08 15:07:42 +0100 | <ski> | (`Either e' basically behaves the same as `Maybe' above, so i didn't show it) |
2022-02-08 15:09:01 +0100 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 268 seconds) |
2022-02-08 15:12:13 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-02-08 15:14:52 +0100 | <jumper149> | ski: That last example breaks my brain x) |
2022-02-08 15:14:55 +0100 | slack1256 | (~slack1256@181.42.40.211) |
2022-02-08 15:15:16 +0100 | <ski> | jumper149 : it just makes a single nondeterministic (binary) choice |
2022-02-08 15:15:58 +0100 | <ski> | in the first choice, you effectively have `fix (\xs -> 1:xs)'; in the second, `fix (\xs -> 2:xs)' |
2022-02-08 15:15:58 +0100 | <jumper149> | > take 5 $ mfix $ \ x -> [x] |
2022-02-08 15:16:00 +0100 | <lambdabot> | [*Exception: <<loop>> |
2022-02-08 15:16:09 +0100 | <jumper149> | What is wrong here? |
2022-02-08 15:16:28 +0100 | <ski> | that's equal to `take 5 [fix (\x -> x)]' |
2022-02-08 15:16:40 +0100 | <jumper149> | ah :( |
2022-02-08 15:17:06 +0100 | <jumper149> | so that is equivalent to bottom I guess |
2022-02-08 15:17:12 +0100 | <ski> | no |
2022-02-08 15:17:30 +0100 | <ski> | > seq (mfix (\ x -> [x])) () |
2022-02-08 15:17:32 +0100 | <lambdabot> | () |
2022-02-08 15:17:41 +0100 | <ski> | > case mfix (\ x -> [x]) of [_] -> () |
2022-02-08 15:17:42 +0100 | <lambdabot> | () |
2022-02-08 15:17:50 +0100 | <ski> | > case mfix (\ x -> [x]) of [!_] -> () |
2022-02-08 15:17:52 +0100 | <lambdabot> | *Exception: <<loop>> |
2022-02-08 15:19:14 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 15:19:14 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 15:19:14 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 15:22:24 +0100 | <jumper149> | > fix id |
2022-02-08 15:22:26 +0100 | <lambdabot> | *Exception: <<loop>> |
2022-02-08 15:22:30 +0100 | <maerwald> | why does Identity not have MonadFail? |
2022-02-08 15:22:31 +0100 | <jumper149> | That is bottom tough, right? |
2022-02-08 15:22:47 +0100 | <maerwald> | sure |
2022-02-08 15:22:49 +0100 | <jumper149> | maerwald: How do you want it to fail? `error`? |
2022-02-08 15:22:53 +0100 | <maerwald> | yeah |
2022-02-08 15:23:29 +0100 | <maerwald> | I think you can expect non-strict errors from a non-strict monad |
2022-02-08 15:23:44 +0100 | <jumper149> | Well then you can say "Why doesnt every monad have `MonadFail`", right? |
2022-02-08 15:23:58 +0100 | <maerwald> | not sure about that |
2022-02-08 15:25:14 +0100 | <jumper149> | Hmm, why don't you just use `error` directly? |
2022-02-08 15:25:25 +0100 | <bjourne> | im very annoyed that stack is using ~/.stack rather than ~/.config/stack and ~/.cache/stack like any well-behaved application should |
2022-02-08 15:25:51 +0100 | <jumper149> | like `do { let x = error "fail here" ; pure x } |
2022-02-08 15:26:07 +0100 | <jumper149> | Then you can unwrap `Identity`, without forcing x |
2022-02-08 15:26:42 +0100 | <ski> | isn't `Identity' strict ? |
2022-02-08 15:26:58 +0100 | <jumper149> | ski: Ok maybe it is, idk! :o |
2022-02-08 15:27:02 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 15:27:13 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 15:27:16 +0100 | <ski> | `newtype' data constructors are a little bit weird, in that way |
2022-02-08 15:27:33 +0100 | <ski> | semantically, they're strict, but operationally, they don't force (since they're no-ops) |
2022-02-08 15:27:43 +0100 | <jumper149> | Ah because of newtype, ... maybe |
2022-02-08 15:28:18 +0100 | <ski> | (and ditto for matching on them not forcing) |
2022-02-08 15:28:27 +0100 | <ski> | > case undefined of Identity _ -> () |
2022-02-08 15:28:28 +0100 | <lambdabot> | () |
2022-02-08 15:28:55 +0100 | <jumper149> | that is horrible x) |
2022-02-08 15:29:29 +0100 | <ski> | what else to expect ? |
2022-02-08 15:29:30 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 15:29:37 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 15:30:15 +0100 | <tomsmeding> | could you formulate it as: for a newtype A = A T, the bottoms "_|_" and "A _|_" are identified, and both behave as "A _|_". This contrary to what would be more intuitive (at least for me), which is that they would both behave as "_|_" |
2022-02-08 15:30:46 +0100 | <merijn> | bjourne: Considering it's on life-support maintenance, I doubt that will ever change |
2022-02-08 15:30:50 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 252 seconds) |
2022-02-08 15:30:54 +0100 | <ski> | well, sure, they're identified |
2022-02-08 15:31:06 +0100 | <ski> | (not sure you really have to add that "both behave as .." part) |
2022-02-08 15:31:12 +0100 | quintasan | (~quassel@quintasan.pl) |
2022-02-08 15:31:14 +0100 | <jumper149> | ski: It does make sense, but its not intuitive :p |
2022-02-08 15:31:29 +0100 | <ski> | it's a gotcha / caveat emptor |
2022-02-08 15:31:37 +0100 | <geekosaur> | I somewhat distrust "intuitive". Intuitive to whom? |
2022-02-08 15:31:49 +0100 | <ski> | to the one who's not used to it |
2022-02-08 15:32:06 +0100 | <tomsmeding> | geekosaur: to me :p |
2022-02-08 15:33:33 +0100 | <tomsmeding> | ski: point is, I think that if any occurrence of a bottom of type A would be automatically, immediately converted to a bottom wrapped in an "A" constructur (imagining a VM where newtypes aren't represented as no-ops), you'd get the same behaviour as Haskell currently does |
2022-02-08 15:33:46 +0100 | <ski> | (that is, i'm not sure what "both behave as \"A _|_\"" vs. "both behave as \"_|_\"" would even mean) |
2022-02-08 15:33:59 +0100 | <jumper149> | > data A a = A a |
2022-02-08 15:34:00 +0100 | <lambdabot> | <hint>:1:1: error: parse error on input ‘data’ |
2022-02-08 15:34:10 +0100 | <jumper149> | > case undefined of A _ -> () |
2022-02-08 15:34:11 +0100 | <lambdabot> | error: Not in scope: data constructor ‘A’ |
2022-02-08 15:34:15 +0100 | <tomsmeding> | whereas converting any bottom in an A constructor automatically to a bottom of type A would have different behaviour: indeed, then 'case undefined of A _ -> ()' should crash |
2022-02-08 15:34:18 +0100 | <ski> | @let data A a = MkA a deriving Show |
2022-02-08 15:34:19 +0100 | <lambdabot> | Defined. |
2022-02-08 15:34:39 +0100 | <jumper149> | > case undefined of A _ -> () |
2022-02-08 15:34:41 +0100 | <lambdabot> | error: Not in scope: data constructor ‘A’ |
2022-02-08 15:34:46 +0100 | <jumper149> | > case undefined of MkA _ -> () |
2022-02-08 15:34:47 +0100 | <lambdabot> | *Exception: Prelude.undefined |
2022-02-08 15:34:50 +0100 | <tomsmeding> | ski: my intuition works for 'data', and I'm trying to formulate a modification to my 'data' intuition to arrive at 'newtype' semantics |
2022-02-08 15:34:55 +0100 | <jumper149> | sry for spam :D |
2022-02-08 15:35:26 +0100 | <bjourne> | marijan: stack is on life-support?! just as i was getting comfortable with cabal |
2022-02-08 15:35:41 +0100 | <ski> | tomsmeding : seems reasonable, i suppose |
2022-02-08 15:36:07 +0100 | <ski> | s/marijan/merijn/ |
2022-02-08 15:36:07 +0100 | <geekosaur> | bjourne, it's gone to "community maintained", but thecommunity doesn't seem to be doing much if any maintenance |
2022-02-08 15:36:33 +0100 | <jumper149> | geekosaur: You could say Haskellers are 'lazy' :D |
2022-02-08 15:36:40 +0100 | <ski> | (interesting nickname mutation, btw) |
2022-02-08 15:36:54 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-08 15:37:11 +0100 | tomsmeding | suspects mistype of merij to marij, then auto-complete |
2022-02-08 15:37:18 +0100 | <bjourne> | geekosaur: are we stuck with cabal or is there a new thing coming? |
2022-02-08 15:37:27 +0100 | <boxscape_> | what's wrong with cabal? |
2022-02-08 15:37:29 +0100 | <merijn> | bjourne: Define "stuck"? |
2022-02-08 15:37:32 +0100 | <ski> | oh .. didn't notice there was someone else, with that nick |
2022-02-08 15:37:42 +0100 | <tomsmeding> | lol bjourne got the dogs out |
2022-02-08 15:37:43 +0100 | <maerwald> | boxscape_: --help for starters |
2022-02-08 15:37:44 +0100 | <merijn> | I always liked cabal better than stack anyway, so *shrug* |
2022-02-08 15:37:51 +0100 | tomsmeding | likes cabal |
2022-02-08 15:37:55 +0100 | <maerwald> | the cli interface of cabal is a mess |
2022-02-08 15:37:56 +0100 | <boxscape_> | I admit I've never tried running cabal --help |
2022-02-08 15:38:05 +0100 | <geekosaur> | I think you'll find much of this channel prefers cabal anyway |
2022-02-08 15:38:22 +0100 | <maerwald> | cabal process handling is confusing (and sometimes buggy) |
2022-02-08 15:38:22 +0100 | <jumper149> | Never used stack. Nix is cool though. Cabal is fine. |
2022-02-08 15:38:28 +0100 | <geekosaur> | which is not to say cabal doesn't have its problems, but it's still under active development |
2022-02-08 15:38:36 +0100 | <maerwald> | but those all seem fixable things, not so much design decisions |
2022-02-08 15:38:40 +0100 | <merijn> | maerwald: Everyone's processing handling is confusing and frequently buggy :p |
2022-02-08 15:38:47 +0100 | <merijn> | s/processing/process |
2022-02-08 15:38:56 +0100 | <geekosaur> | stack's process hand;ling used to be fairly buggy too |
2022-02-08 15:39:02 +0100 | <maerwald> | merijn: well, `stack exec` works better than `cabal exec` |
2022-02-08 15:39:09 +0100 | <maerwald> | (hint: cabal doesn't actually exec) |
2022-02-08 15:39:26 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-08 15:39:36 +0100 | <merijn> | tbh, I never used cabal exec, so dunno |
2022-02-08 15:39:43 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 15:39:53 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 15:39:58 +0100 | <geekosaur> | mixing signals and subprocesses is bad enough, trying todo so under a windows/unix compatibility layer ius much much worse |
2022-02-08 15:40:09 +0100 | <maerwald> | there was a "rewrite" of cabal, but with a different philosophy... I forgot the name |
2022-02-08 15:40:14 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 15:40:19 +0100 | <maerwald> | it couldn't build some projects |
2022-02-08 15:40:25 +0100 | <maerwald> | I think it didn't support custom Setup.hs |
2022-02-08 15:40:33 +0100 | <maerwald> | (which is not so sad) |
2022-02-08 15:40:47 +0100 | <dminuoso> | 15:39:09 maerwald | (hint: cabal doesn't actually exec) |
2022-02-08 15:40:51 +0100 | <dminuoso> | Does it run through a shell? |
2022-02-08 15:41:06 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 15:41:06 +0100 | <maerwald> | it just spawns a subprocess |
2022-02-08 15:41:16 +0100 | <geekosaur> | that's more portably |
2022-02-08 15:41:23 +0100 | <geekosaur> | windows doesn't do exec |
2022-02-08 15:41:26 +0100 | <dminuoso> | Mmm, so whether thats wrong or not is debatable |
2022-02-08 15:41:30 +0100 | <maerwald> | geekosaur: lol |
2022-02-08 15:41:38 +0100 | <dminuoso> | I dont consider it surprising, I never thougth that `exec` might have implied the syscall |
2022-02-08 15:41:38 +0100 | <maerwald> | geekosaur: stack obviously doesn't exec on windows |
2022-02-08 15:41:46 +0100 | <maerwald> | that's not a portability problem |
2022-02-08 15:42:10 +0100 | <maerwald> | that's proper platform-specific code |
2022-02-08 15:42:28 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 15:42:31 +0100 | <bjourne> | marijan: i thought everyone hated cabal, i might have been mistaken |
2022-02-08 15:42:36 +0100 | <maerwald> | portability doesn't mean to do the wrong thing on all platforms to be consistent |
2022-02-08 15:42:50 +0100 | ski | pities marijan |
2022-02-08 15:43:37 +0100 | <boxscape_> | bjourne cabal has changed a few things since stack was developed, which makes stack much less necessary |
2022-02-08 15:43:56 +0100 | <maerwald> | yeah and it might support stackage directly at some point |
2022-02-08 15:44:43 +0100 | <jumper149> | At that point I hope they rename it to "cabbage" |
2022-02-08 15:45:01 +0100 | <bjourne> | +1 |
2022-02-08 15:45:09 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-02-08 15:45:14 +0100 | <dminuoso> | Im quite satisfied with cabal |
2022-02-08 15:45:34 +0100 | <merijn> | boxscape_: Correction: Those changes in cabal started before stack development :p |
2022-02-08 15:45:40 +0100 | <boxscape_> | ah, fair enough |
2022-02-08 15:45:46 +0100 | <dminuoso> | While there's certainly some rough edges here and there, like making it hard to just start a repl with some libraries in scope, overall its fine |
2022-02-08 15:46:06 +0100 | <ski> | bjourne : note there's different things referred to as "cabal", by people. <https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07> |
2022-02-08 15:46:28 +0100 | <boxscape_> | dminuoso not that hard, "cabal repl --build-depends=distributive,lens" |
2022-02-08 15:46:46 +0100 | <dminuoso> | Oh |
2022-02-08 15:46:54 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 15:47:27 +0100 | <maerwald> | or `cabal install --lib --package-env=.` and then just ghci |
2022-02-08 15:47:31 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 15:47:33 +0100 | <merijn> | bjourne: tbh, I don't think stack got more than 50-60% mindshare even at it's most popular |
2022-02-08 15:47:40 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 15:47:53 +0100 | <merijn> | bjourne: I will say that the 50-60% it did attract were probably...the most aggressively vocal people |
2022-02-08 15:48:02 +0100 | <maerwald> | merijn: in industry, I'd say, it's more popular... although that may be shrinking as well |
2022-02-08 15:48:17 +0100 | <merijn> | to the point that their opinion seems to drown out everything else on social media |
2022-02-08 15:48:18 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-08 15:49:13 +0100 | <merijn> | bjourne: Even "cabal sandbox" was already pretty nice, but kinda annoying and a hassle to work with. But v2-build basically eliminates all of the nasty corners/edges from the sandbox thing |
2022-02-08 15:49:58 +0100 | <maerwald> | merijn: I actually prefer sandboxes over nix-style stores |
2022-02-08 15:50:32 +0100 | <maerwald> | easier to clean up without wreaking havoc |
2022-02-08 15:50:37 +0100 | <maerwald> | debugging easier |
2022-02-08 15:51:05 +0100 | <bjourne> | so the reason i asked is because the profs at my uni thinks (and teaches) that stack is *the* cabal replacement |
2022-02-08 15:51:08 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-02-08 15:51:21 +0100 | <maerwald> | bjourne: well, tell them to look at the official download page maybe |
2022-02-08 15:51:31 +0100 | <merijn> | bjourne: https://www.snoyman.com/blog/babies-oss-maintenance/ |
2022-02-08 15:51:40 +0100 | <merijn> | bjourne: Maybe point him in that direction |
2022-02-08 15:51:41 +0100 | <maerwald> | https://www.haskell.org/downloads/ |
2022-02-08 15:52:06 +0100 | <maerwald> | Haskell toolchain is defined as: GHC, cabal-install, stack, HLS |
2022-02-08 15:52:53 +0100 | <maerwald> | merijn: well, he was vocal about needing maintainers, but didn't attend to most of my PRs... so I'm not sure what I conclude from that |
2022-02-08 15:53:16 +0100 | <merijn> | maerwald: The conclusion is that it's mostly unmaintained :p |
2022-02-08 15:53:47 +0100 | dsrt^ | (~dsrt@128-092-182-020.biz.spectrum.com) (Remote host closed the connection) |
2022-02-08 15:54:12 +0100 | <dminuoso> | bjourne: For one, most people live in a really small bubble. |
2022-02-08 15:54:47 +0100 | <dminuoso> | If you happen to work at FP complete, you might be led to believe that nobody uses cabal-install. |
2022-02-08 15:55:03 +0100 | <bjourne> | maerwald: i could, but they don't have time to update their lecture material anyway |
2022-02-08 15:55:08 +0100 | <dminuoso> | It's hard to gain a good indicator of what the wide community uses outside haskell surveys. |
2022-02-08 15:55:16 +0100 | <maerwald> | bjourne: ah... there's the real reason :p |
2022-02-08 15:55:23 +0100 | <dminuoso> | And even they give a biases result since its tough to get an accurate representative picture |
2022-02-08 15:56:05 +0100 | <maerwald> | https://taylor.fausak.me/2021/11/16/haskell-survey-results/#s2q1 |
2022-02-08 15:57:13 +0100 | <jumper149> | In 2017 stack was twice as popular as cabal. Nowadays it's roughly equal according to the Haskell surcey |
2022-02-08 15:57:35 +0100 | <merijn> | jumper149: Some of the earliest Haskell surveys were *incredibly* biased in population that responded |
2022-02-08 15:57:41 +0100 | <dminuoso> | maerwald: Online surveys are still incredibly poor. |
2022-02-08 15:58:15 +0100 | <dminuoso> | They suffer from (non)response bias and coverage bias |
2022-02-08 15:58:21 +0100 | <merijn> | jumper149: Since they were largely advertised/popularised on FPComplete related sides, which (for obvious reason) had audiences skewing to stack hard |
2022-02-08 15:58:37 +0100 | <merijn> | jumper149: The more recent surveys are more broadly circulated and probably more representative |
2022-02-08 15:58:40 +0100 | <maerwald> | sure... my guess is that the survey is mostly targeting opensource community |
2022-02-08 15:58:55 +0100 | <maerwald> | don't think managers tell their 5 haskell employees to complete the survey |
2022-02-08 15:59:04 +0100 | <bjourne> | maerwald: indeed, it's no one's fault, but software churn wastes a lot of time. no one has time to keep up with it |
2022-02-08 15:59:05 +0100 | <dminuoso> | No, that's not what Im suggesting. |
2022-02-08 15:59:35 +0100 | <maerwald> | my guess is if you'd do that survey in industry, stack would be at 70% |
2022-02-08 16:00:48 +0100 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-02-08 16:01:16 +0100 | comerijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 16:01:32 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:01:42 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Read error: Connection reset by peer) |
2022-02-08 16:03:22 +0100 | messier102 | (~messier10@user/messier102) |
2022-02-08 16:03:27 +0100 | fef | (~thedawn@user/thedawn) |
2022-02-08 16:03:34 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:03:45 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-02-08 16:04:43 +0100 | messier102_ | (~messier10@user/messier102) |
2022-02-08 16:05:03 +0100 | califax | (~califax@user/califx) |
2022-02-08 16:06:16 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 250 seconds) |
2022-02-08 16:06:33 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 256 seconds) |
2022-02-08 16:08:32 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2022-02-08 16:10:47 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 16:11:34 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 16:12:27 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:13:13 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:13:38 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) |
2022-02-08 16:14:03 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection) |
2022-02-08 16:15:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 16:17:14 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-02-08 16:17:14 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:17:19 +0100 | nek0 | (~nek0@nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
2022-02-08 16:17:54 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:19:26 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-02-08 16:19:27 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:20:00 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:22:23 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) (Remote host closed the connection) |
2022-02-08 16:22:40 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) |
2022-02-08 16:22:49 +0100 | mbuf | (~Shakthi@122.178.191.223) (Quit: Leaving) |
2022-02-08 16:24:27 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) |
2022-02-08 16:24:34 +0100 | comerijn | merijn |
2022-02-08 16:24:38 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-08 16:25:03 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) (Read error: Connection reset by peer) |
2022-02-08 16:25:22 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) |
2022-02-08 16:26:48 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) |
2022-02-08 16:26:49 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:27:20 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection) |
2022-02-08 16:27:50 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:28:11 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-02-08 16:28:25 +0100 | ober_ | (~ober@mail3.belmont.k12.ma.us) |
2022-02-08 16:28:26 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:28:34 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:29:20 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) (Read error: Connection reset by peer) |
2022-02-08 16:30:48 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-02-08 16:31:42 +0100 | rembo10 | (~rembo10@remulis.com) |
2022-02-08 16:37:20 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:18a9:c2e9:8c77:2fcf) |
2022-02-08 16:37:41 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:37:48 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:39:09 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 16:39:11 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-02-08 16:40:15 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) |
2022-02-08 16:41:48 +0100 | ober_ | (~ober@mail3.belmont.k12.ma.us) (Read error: Connection reset by peer) |
2022-02-08 16:43:33 +0100 | thevishy | (~Nishant@2405:201:f005:c007:e0f1:5635:e895:47c6) (Quit: Leaving) |
2022-02-08 16:43:52 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-02-08 16:43:57 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:18a9:c2e9:8c77:2fcf) (Ping timeout: 240 seconds) |
2022-02-08 16:45:05 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) (Ping timeout: 256 seconds) |
2022-02-08 16:45:10 +0100 | ober | (~ober@mail3.belmont.k12.ma.us) (Quit: Leaving) |
2022-02-08 16:46:01 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 16:47:33 +0100 | safinaskar | (~quassel@109.252.91.116) |
2022-02-08 16:47:43 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-02-08 16:48:01 +0100 | safinaskar | (~quassel@109.252.91.116) () |
2022-02-08 16:49:38 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1001:bfbe:d16:fcbe) (Quit: WeeChat 2.8) |
2022-02-08 16:50:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 16:50:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 16:50:50 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 16:50:51 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 16:51:02 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 16:55:39 +0100 | messier102_ | (~messier10@user/messier102) (Ping timeout: 250 seconds) |
2022-02-08 16:55:39 +0100 | messier102 | (~messier10@user/messier102) (Ping timeout: 250 seconds) |
2022-02-08 16:57:51 +0100 | Guest72 | (~Guest72@27.56.151.17) |
2022-02-08 16:58:10 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-02-08 16:59:05 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-08 16:59:16 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:a48f:8f89:30fa:5637) |
2022-02-08 17:00:27 +0100 | olle | (~olle@p5784fa92.dip0.t-ipconnect.de) |
2022-02-08 17:00:40 +0100 | <olle> | You guys have a way to put a side-effects in a queue to be executed at a later point? |
2022-02-08 17:00:45 +0100 | <olle> | -s* |
2022-02-08 17:01:00 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 17:01:31 +0100 | <ski> | huh ? |
2022-02-08 17:01:51 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 17:01:59 +0100 | <ski> | you can put actions in a queue, if you want, and perhaps later execute them, sure |
2022-02-08 17:02:09 +0100 | <olle> | ski: Define "action" |
2022-02-08 17:02:28 +0100 | <ski> | any value of type `f a', where `f' is an instance of `Applicative' |
2022-02-08 17:02:52 +0100 | <olle> | ski: Alright :) |
2022-02-08 17:03:17 +0100 | <ski> | (btw, sometimes people would express that as `Applicative f => f a' .. but that's wrong) |
2022-02-08 17:03:19 +0100 | <olle> | Sooo, say I have print "foo" and wrap it inside a lambda instead. Can I remove the IO monad from that function then? |
2022-02-08 17:03:31 +0100 | <merijn> | olle: You can simply have a threat with a channel and then execute those one at a time |
2022-02-08 17:03:33 +0100 | <olle> | Or maybe the queue must be mutable |
2022-02-08 17:03:45 +0100 | <ski> | what do you mean by "wrap it inside a lambda instead" ? |
2022-02-08 17:03:47 +0100 | <merijn> | olle: You can just put IO actions into things directly |
2022-02-08 17:04:00 +0100 | <merijn> | :t map putStrlN ["foo", "bar"] |
2022-02-08 17:04:01 +0100 | <lambdabot> | error: |
2022-02-08 17:04:01 +0100 | <lambdabot> | • Variable not in scope: putStrlN :: [Char] -> b |
2022-02-08 17:04:02 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2022-02-08 17:04:07 +0100 | <merijn> | :t map putStrLn ["foo", "bar"] |
2022-02-08 17:04:08 +0100 | <lambdabot> | [IO ()] |
2022-02-08 17:04:31 +0100 | <merijn> | olle: IO actions are just values like anything else and you can put them in data structures, pass them around, whatever |
2022-02-08 17:04:47 +0100 | <ski> | could be mutable queue, could be immutable |
2022-02-08 17:04:51 +0100 | <ski> | whichever you want |
2022-02-08 17:04:56 +0100 | <olle> | I'm looking for ways to extend the "functional core" in different ways, that's my motivation |
2022-02-08 17:05:06 +0100 | <olle> | Without tagless final or free monad |
2022-02-08 17:05:36 +0100 | <olle> | ski: Well, if the queue is immutable, I'd have to include it in the function signature somehow, or pass it around. Well, maybe that's OK... |
2022-02-08 17:06:22 +0100 | <ski> | seeing as we have almost no idea of what you're wanting to do, we can't really give much specific advice on such things |
2022-02-08 17:06:25 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-08 17:06:43 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2022-02-08 17:07:17 +0100 | <olle> | Right |
2022-02-08 17:07:31 +0100 | <ski> | olle : i'm still having trouble understanding "Sooo, say I have print \"foo\" and wrap it inside a lambda instead. Can I remove the IO monad from that function then?" |
2022-02-08 17:07:51 +0100 | <olle> | ski: The difference between do print "bla" vs \x -> do print "bla" |
2022-02-08 17:08:06 +0100 | <ski> | one is a function, the other isn't |
2022-02-08 17:08:16 +0100 | <ski> | or, if you prefer, one is parameterized, the other isn't |
2022-02-08 17:09:03 +0100 | <ski> | you can't go from `X -> IO Y' to `X -> Y', anyway, if that's what you're asking |
2022-02-08 17:09:27 +0100 | <olle> | ski: Why not? |
2022-02-08 17:09:57 +0100 | <ski> | because all functions of type `IO Y -> Y' are constant |
2022-02-08 17:10:41 +0100 | <olle> | Not sure what that means, sorry |
2022-02-08 17:10:42 +0100 | <ski> | you can't compute an `Y' from a recipe for how to interact with the OS to obtain an `Y' |
2022-02-08 17:10:56 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2022-02-08 17:11:08 +0100 | <ski> | you need to actually, you know, perform the I/O interaction, to arrive at the `Y' |
2022-02-08 17:11:10 +0100 | <olle> | You don't have void or nil or unit in Haskell? |
2022-02-08 17:11:18 +0100 | <ski> | sure, we have `()' |
2022-02-08 17:11:26 +0100 | <ski> | @type putStrLn |
2022-02-08 17:11:27 +0100 | <lambdabot> | String -> IO () |
2022-02-08 17:11:56 +0100 | <olle> | Hm hm hm |
2022-02-08 17:12:06 +0100 | <ski> | the only way to perform the I/O action is to define `main' to be that action (or to make it a part of `main') .. or, in the interactor, to enter the action there for it to execute |
2022-02-08 17:12:33 +0100 | <ski> | execution can't be triggered from evaluation (but the opposite happens all the time) |
2022-02-08 17:12:47 +0100 | <olle> | Sure, main will have IO, but a subfunction might go from X -> IO Y to X -> Y if that specific IO interaction is put in that queue instead, was my idea. |
2022-02-08 17:13:35 +0100 | <ski> | (more specifically, I/O execution. execution of many other types of actions can be triggered from evaluation. e.g. `Maybe',`[]',`State s',`Either e',..) |
2022-02-08 17:13:39 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-02-08 17:14:05 +0100 | <ski> | olle : well, you can for sure do `X -> Queue (IO Y)' or somesuch |
2022-02-08 17:14:38 +0100 | <polyphem> | X -> STM Y |
2022-02-08 17:14:44 +0100 | <olle> | STM? |
2022-02-08 17:14:50 +0100 | <olle> | Statement? |
2022-02-08 17:14:55 +0100 | <ski> | (or, *if* `Y' is recursive, incorporates a `Queue (IO Y)' in one case, then, sure, you can do `X -> Y') |
2022-02-08 17:15:00 +0100 | <polyphem> | SoftwareTransactionalMemory |
2022-02-08 17:15:04 +0100 | <ski> | Software-Transactional Memory |
2022-02-08 17:16:08 +0100 | <olle> | Checking... |
2022-02-08 17:16:19 +0100 | <ski> | `STM' is if you'd like to use concurrent mutable data structures, with multiple threads, with transaction that can rollback or commit |
2022-02-08 17:16:30 +0100 | <olle> | Ah |
2022-02-08 17:16:47 +0100 | <ski> | (`IO' can also do that, except for the transaction part) |
2022-02-08 17:17:05 +0100 | <polyphem> | they give you Transactional Queues for yoir "internal IO Actions" |
2022-02-08 17:17:07 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-08 17:17:07 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-08 17:17:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-08 17:17:16 +0100 | <polyphem> | *your* |
2022-02-08 17:17:43 +0100 | yuvi | (~uv125@192.54.96.185) |
2022-02-08 17:17:43 +0100 | <ski> | heh, "internal IO Actions" does sound a bit confusing :) |
2022-02-08 17:17:48 +0100 | <ski> | re yuvi |
2022-02-08 17:18:24 +0100 | <yuvi> | what up haskell irc |
2022-02-08 17:18:27 +0100 | <ski> | any progress with `startsWith' ? |
2022-02-08 17:18:34 +0100 | shapr` | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-02-08 17:18:35 +0100 | <yuvi> | yes! |
2022-02-08 17:18:46 +0100 | <yuvi> | i can share my solution |
2022-02-08 17:18:51 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 17:18:52 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2022-02-08 17:19:23 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 17:19:24 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 17:20:03 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) |
2022-02-08 17:21:13 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2022-02-08 17:21:29 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 17:22:29 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2022-02-08 17:22:29 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 17:22:51 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Quit: WeeChat 3.4) |
2022-02-08 17:23:02 +0100 | <yuvi> | hmm how do i share a multiline function here |
2022-02-08 17:23:07 +0100 | <ski> | @where paste |
2022-02-08 17:23:07 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2022-02-08 17:23:46 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 17:24:23 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-08 17:24:53 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2022-02-08 17:25:01 +0100 | <polyphem> | ski: s/internal/unexecuted|prepared/ IO Actions |
2022-02-08 17:25:28 +0100 | razetime | (~quassel@49.207.209.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-02-08 17:25:53 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 17:25:59 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-08 17:26:25 +0100 | <yuvi> | https://paste.tomsmeding.com/IgquexPc |
2022-02-08 17:28:12 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-02-08 17:29:01 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) |
2022-02-08 17:32:15 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 17:32:52 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 17:33:22 +0100 | <c_wraith> | yuvi: you have a bunch of unnecessary parens in there. (const True) is the only thing that actually needs them |
2022-02-08 17:34:16 +0100 | <boxscape_> | and (x : xs) |
2022-02-08 17:35:01 +0100 | <Inst> | did yuvi solve the foldr isPrefix problem yet? |
2022-02-08 17:35:12 +0100 | <yuvi> | Inst: yes! |
2022-02-08 17:35:18 +0100 | <Inst> | how did you do it? |
2022-02-08 17:35:31 +0100 | <yuvi> | i linked my solution above, can u see it? |
2022-02-08 17:35:40 +0100 | mvr_ | (uid36976@id-36976.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-08 17:36:02 +0100 | <yuvi> | i fold over the prefix, and use the const Tru function to "Accumulate" bools |
2022-02-08 17:37:27 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 17:37:35 +0100 | <Inst> | you're using recursion |
2022-02-08 17:37:49 +0100 | <c_wraith> | one convention thing: the name "go" is usually used for a recursive helper, but "go" isn't recursive |
2022-02-08 17:37:52 +0100 | <Inst> | go c acc (x : xs) |
2022-02-08 17:37:52 +0100 | <Inst> | | c == x = acc xs |
2022-02-08 17:38:16 +0100 | <c_wraith> | Inst: that's not recursive. It's more like calling a continuation |
2022-02-08 17:38:18 +0100 | <yuvi> | what's the recursion |
2022-02-08 17:38:23 +0100 | <Inst> | i see |
2022-02-08 17:39:05 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 17:40:01 +0100 | <Inst> | anyways my solution wouldn't have worked |
2022-02-08 17:40:09 +0100 | <Inst> | type system would have stopped me |
2022-02-08 17:40:27 +0100 | <boxscape_> | would the solution have been correct if you had inserted unsafeCoerce? |
2022-02-08 17:40:39 +0100 | k8yun_ | (~k8yun@24.244.29.114) |
2022-02-08 17:40:53 +0100 | <yuvi> | i do appreciate the help |
2022-02-08 17:42:35 +0100 | monochrom | suggests "goter" meaning "the go-to helper" meaning "this is the generic name you go to for helper functions when you can't think of a specific name" |
2022-02-08 17:43:33 +0100 | <yuvi> | gotcha |
2022-02-08 17:43:47 +0100 | <yuvi> | c u guys later |
2022-02-08 17:43:49 +0100 | yuvi | (~uv125@192.54.96.185) (Quit: WeeChat 2.8) |
2022-02-08 17:44:15 +0100 | k8yun | (~k8yun@198-48-158-40.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
2022-02-08 17:46:36 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2022-02-08 17:47:43 +0100 | dajoer | (~david@user/gvx) (Quit: leaving) |
2022-02-08 17:49:12 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2022-02-08 17:50:55 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-02-08 17:51:23 +0100 | alp | (~alp@user/alp) (Ping timeout: 256 seconds) |
2022-02-08 17:52:10 +0100 | k8yun_ | (~k8yun@24.244.29.114) (Changing host) |
2022-02-08 17:52:10 +0100 | k8yun_ | (~k8yun@user/k8yun) |
2022-02-08 17:52:49 +0100 | jumper149 | (~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.3) |
2022-02-08 17:53:56 +0100 | Guest72 | (~Guest72@27.56.151.17) (Quit: Client closed) |
2022-02-08 17:56:24 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-02-08 17:56:37 +0100 | slack5035 | (~slack1256@191.126.99.83) |
2022-02-08 17:58:40 +0100 | slack1256 | (~slack1256@181.42.40.211) (Ping timeout: 256 seconds) |
2022-02-08 18:00:00 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 18:00:24 +0100 | shapr` | shapr |
2022-02-08 18:03:49 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) (Ping timeout: 240 seconds) |
2022-02-08 18:05:00 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-08 18:05:12 +0100 | emf | (~emf@2601:602:9400:8f0:435:b386:5ad4:6eb2) |
2022-02-08 18:07:22 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) (Remote host closed the connection) |
2022-02-08 18:08:25 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:947b:22d6:c94:9589) (Remote host closed the connection) |
2022-02-08 18:12:02 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-08 18:12:02 +0100 | Merfont | (~Kaiepi@156.34.47.253) (Quit: Leaving) |
2022-02-08 18:12:18 +0100 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-02-08 18:14:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:15:57 +0100 | unyu | (~pyon@user/pyon) (Ping timeout: 240 seconds) |
2022-02-08 18:16:43 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-02-08 18:18:12 +0100 | unyu | (~pyon@user/pyon) |
2022-02-08 18:19:06 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:19:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:19:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:19:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:19:50 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:20:05 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:20:06 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) |
2022-02-08 18:20:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:20:26 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:20:33 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:20:48 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:20:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:21:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:21:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:21:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:21:38 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:21:52 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:22:00 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:22:14 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:22:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:22:36 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:22:44 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:22:59 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:23:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:23:12 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) |
2022-02-08 18:23:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:23:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:23:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:23:51 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:24:06 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:24:14 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:24:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:24:35 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:24:49 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:24:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:25:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:25:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:25:23 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-02-08 18:25:25 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-08 18:25:32 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:25:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:25:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:26:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:26:16 +0100 | mncheckm | (~mncheck@193.224.205.254) |
2022-02-08 18:26:18 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:26:26 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:26:40 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:26:48 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:27:02 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:27:10 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:27:24 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:27:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:27:46 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:27:51 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 18:27:54 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:28:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:28:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:28:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:28:37 +0100 | mncheck | (~mncheck@193.224.205.254) (Ping timeout: 240 seconds) |
2022-02-08 18:28:39 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:28:40 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 18:28:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 18:30:59 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 18:31:13 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 18:31:21 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-08 18:31:52 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) |
2022-02-08 18:34:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) (Remote host closed the connection) |
2022-02-08 18:37:03 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2022-02-08 18:37:03 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 18:37:22 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 18:37:40 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 18:37:52 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-08 18:37:58 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 18:39:21 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
2022-02-08 18:42:58 +0100 | vysn | (~vysn@user/vysn) |
2022-02-08 18:45:01 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:7c1f:c247:2b7b:d046) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-08 18:47:08 +0100 | akegalj | (~akegalj@141-136-168-212.dsl.iskon.hr) (Quit: leaving) |
2022-02-08 18:50:40 +0100 | fendor | (~fendor@91.141.68.59.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-02-08 18:51:59 +0100 | MatthiasG2 | (~matthias@i6DFA026C.versanet.de) |
2022-02-08 18:52:32 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 18:54:21 +0100 | alp | (~alp@user/alp) |
2022-02-08 18:56:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 18:57:32 +0100 | jollygood2 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-02-08 18:59:03 +0100 | olle | (~olle@p5784fa92.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-02-08 19:00:21 +0100 | emf_ | (~emf@2620:10d:c090:400::5:57ea) |
2022-02-08 19:03:57 +0100 | emf | (~emf@2601:602:9400:8f0:435:b386:5ad4:6eb2) (Ping timeout: 240 seconds) |
2022-02-08 19:04:37 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-08 19:06:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 19:07:58 +0100 | <boxscape_> | Would it be possible to extend Haskell's type system so you could write `fix :: (a -> a) -> a; fix = \f -> (\x -> f (unsafeCoerce x x)) (\x -> f (unsafeCoerce x x))` without the unsafeCoerce? |
2022-02-08 19:08:15 +0100 | <boxscape_> | In the spirit of broadening the overlap between correct programs and programs that typecheck |
2022-02-08 19:09:19 +0100 | <boxscape_> | (Alternatively, is there some weird way to do it with the existing type system?) |
2022-02-08 19:10:34 +0100 | <ski> | boxscape_ : you can use `newtype Santa a = MkSanta (Santa a -> a)' |
2022-02-08 19:10:44 +0100 | <boxscape_> | ah, right, newtypes, that makes sense |
2022-02-08 19:10:53 +0100 | <boxscape_> | is there a reason it's called Santa? |
2022-02-08 19:11:32 +0100 | <monochrom> | A system that allows infinite types will accept it. Essentially you need a type S such that S = S->a, which is Santa above. |
2022-02-08 19:11:39 +0100 | <boxscape_> | okay |
2022-02-08 19:11:54 +0100 | <monochrom> | TaPL has a chapter and a toy language that allows infinite types (it says "equirecursive types"). |
2022-02-08 19:12:08 +0100 | <boxscape_> | Ah, I've been meaning to continue reading that |
2022-02-08 19:12:15 +0100 | <monochrom> | whereas using a newtype wrapper is "isorecursive types" in TaPL. |
2022-02-08 19:12:22 +0100 | <ski> | boxscape_ : "Löb’s Theorem: Santa Claus and Provability" by XOR's Hammer in 2008-08-13 at <https://xorshammer.com/2008/08/13/loebs-theorem/> |
2022-02-08 19:12:30 +0100 | <boxscape_> | thanks |
2022-02-08 19:13:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 19:13:43 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) |
2022-02-08 19:13:53 +0100 | <boxscape_> | I suppose fix's type does look similar to Löb’s theorem |
2022-02-08 19:14:28 +0100 | <ski> | boxscape_ : you can also do it, without extra fluff, in `ocaml -rectypes' (which enables unrestricted equi-recursive types) |
2022-02-08 19:14:38 +0100 | <boxscape_> | interesting |
2022-02-08 19:15:11 +0100 | <ski> | (without `-rectypes', the cycles have to go through at least one object type. this is used in the OO system, to express "binary methods" and "clone methods") |
2022-02-08 19:15:22 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 19:15:35 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 19:16:31 +0100 | <boxscape_> | part of what I was wondering is if you can do this without making your language inconsistent or something - looks like the main problem is harder type checking/inference |
2022-02-08 19:16:46 +0100 | <ski> | "inconsistent", in which sense ? |
2022-02-08 19:16:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-08 19:17:05 +0100 | <ski> | equi-recursive types isn't really that much harder to check/inder |
2022-02-08 19:17:34 +0100 | <ski> | the issue is the number of false positives. instead of getting a type error for when you write nonsense, you'll often instead get crazy cyclic types inferred |
2022-02-08 19:17:52 +0100 | <boxscape_> | hm, okay. I was taking that from https://en.wikipedia.org/wiki/Recursive_data_type#Equirecursive_types which says "Algorithmic problems such as type checking and type inference are more difficult for equirecursive types as well" |
2022-02-08 19:17:52 +0100 | <boxscape_> | But yeah weird type errors make sense |
2022-02-08 19:18:01 +0100 | <monochrom> | Yeah consider the typo in "if b then x else [x,x]" |
2022-02-08 19:18:12 +0100 | <boxscape_> | I was thinking "inconsistent" in the sense of "let's say we add this to agda, could you prove false" |
2022-02-08 19:18:39 +0100 | <boxscape_> | or weird types rather |
2022-02-08 19:18:46 +0100 | <dolio> | fix lets you prove false. |
2022-02-08 19:18:46 +0100 | <ski> | `fix' allows you to prove falsum, sure |
2022-02-08 19:18:56 +0100 | <boxscape_> | ah, hm, right |
2022-02-08 19:19:11 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 19:20:05 +0100 | <monochrom> | S=S->a makes S a non-well-founded recursive type. Agda allows well-founded recursive types only, equi or iso. |
2022-02-08 19:20:19 +0100 | <boxscape_> | I see |
2022-02-08 19:20:43 +0100 | ski | fixes it to `S = (S -> a) -> a' |
2022-02-08 19:22:09 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:c1b4:4e62:c0e4:304a) |
2022-02-08 19:22:10 +0100 | <dolio> | Agda doesn't allow that, either. |
2022-02-08 19:22:39 +0100 | <ski> | yea, i know ;) |
2022-02-08 19:22:50 +0100 | <monochrom> | "fixes" :) |
2022-02-08 19:23:25 +0100 | <ski> | heh, that was even not a conscious reference |
2022-02-08 19:23:57 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 19:24:19 +0100 | MajorBiscuit | (~MajorBisc@c-001-001-054.client.tudelft.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-08 19:25:21 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 19:27:15 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-08 19:28:06 +0100 | <dolio> | You can show some types satisfy that with extra assumptions, though. |
2022-02-08 19:28:18 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) |
2022-02-08 19:28:56 +0100 | <dolio> | Well, some without extra assumptions, but they're pretty boring. |
2022-02-08 19:30:13 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 19:31:51 +0100 | emf_ | (~emf@2620:10d:c090:400::5:57ea) (Quit: emf_) |
2022-02-08 19:32:23 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-08 19:32:29 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:6197:e762:8e5b:d7b9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-08 19:32:34 +0100 | emf | (~emf@2620:10d:c090:400::5:57ea) |
2022-02-08 19:33:30 +0100 | safinaskar | (~quassel@109.252.91.116) |
2022-02-08 19:33:48 +0100 | <safinaskar> | why "cabal v2-install" doesn't work as before anymore? |
2022-02-08 19:34:14 +0100 | <safinaskar> | in past i typed "cabal v2-install --lib some-library-name" |
2022-02-08 19:34:16 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:30a6:9d4e:5fe4:7e50) |
2022-02-08 19:34:18 +0100 | <safinaskar> | (for example, Earley) |
2022-02-08 19:34:39 +0100 | <safinaskar> | and then i imported such lib in .hs file and compiled the file using "ghc File.hs" |
2022-02-08 19:34:44 +0100 | <safinaskar> | now this doesn't work |
2022-02-08 19:34:46 +0100 | <safinaskar> | why? |
2022-02-08 19:34:54 +0100 | <monochrom> | works for me. |
2022-02-08 19:35:10 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) |
2022-02-08 19:35:35 +0100 | <[exa]> | safinaskar: what's the error you get there? |
2022-02-08 19:35:36 +0100 | <geekosaur> | define "doesn't work" |
2022-02-08 19:36:13 +0100 | <geekosaur> | also, using --lib is overriding cabal-install's safeies and you can end up with e.g. incompatible versions of packages in the same environment file,which can cause build conflicts or even failures |
2022-02-08 19:36:15 +0100 | <[exa]> | safinaskar: anyway you might need to select the available packages manually, e.g. `ghc -package Earley File.hs` |
2022-02-08 19:36:19 +0100 | <geekosaur> | *safeties |
2022-02-08 19:36:36 +0100 | <safinaskar> | [exa]: geekosaur: "Could not find module ‘Text.Earley’" |
2022-02-08 19:37:00 +0100 | <monochrom> | No I don't think --lib overrides safety. |
2022-02-08 19:38:44 +0100 | <monochrom> | Oh haha agda has a --type-in-type flag? |
2022-02-08 19:38:55 +0100 | <dolio> | Yeah. |
2022-02-08 19:39:03 +0100 | <safinaskar> | [exa]: this doesn't work, too |
2022-02-08 19:39:04 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-08 19:39:21 +0100 | <safinaskar> | [exa]: now i see "<command line>: cannot satisfy -package Earley" |
2022-02-08 19:39:28 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) (Ping timeout: 250 seconds) |
2022-02-08 19:39:52 +0100 | <safinaskar> | ghc 9.2.1 |
2022-02-08 19:39:59 +0100 | <dolio> | It has flags for not checking positivity, too. |
2022-02-08 19:40:15 +0100 | <safinaskar> | cabal 3.6.2.0 |
2022-02-08 19:40:33 +0100 | <safinaskar> | i can send exact dockerfile i used to build this environment if this helps |
2022-02-08 19:42:43 +0100 | <dolio> | Just installing a lib doesn't mark it available for use with raw GHC. |
2022-02-08 19:42:56 +0100 | ehammarstrom | (~ehammarst@62-20-203-39-no182.tbcn.telia.com) |
2022-02-08 19:43:12 +0100 | <dolio> | Possibly in the past it might have generated a hidden file that did so, but I recall people complaining a lot about that. |
2022-02-08 19:43:40 +0100 | <geekosaur> | --lib does in fact create a package-env file still |
2022-02-08 19:44:10 +0100 | <safinaskar> | monochrom: moreover, idris 2 has some stupid unsoundness issue, which is always present. I don't remember exactly this issue. Either there is always type-in-type, either they don't have termination checker. It seems the first |
2022-02-08 19:45:06 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) (Remote host closed the connection) |
2022-02-08 19:45:10 +0100 | ehammarstrom | (~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Remote host closed the connection) |
2022-02-08 19:45:43 +0100 | <safinaskar> | but "-package" supposed to work, right?! |
2022-02-08 19:46:14 +0100 | bjourne | (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5) (Quit: Konversation terminated!) |
2022-02-08 19:47:17 +0100 | <EvanR> | idris historically appeared to have type in type unless you knew how to read between the lines of the repl |
2022-02-08 19:47:40 +0100 | <geekosaur> | -package can only work if ghc has access to the package database. neither stack nor cabal gives raw ghc/ghci that access |
2022-02-08 19:47:51 +0100 | <geekosaur> | package environment files can be used with cabal to simulate it |
2022-02-08 19:47:57 +0100 | <EvanR> | I would have thought integer division by zero causing a hard crash was a more important unsoundness issue |
2022-02-08 19:48:00 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-02-08 19:48:19 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 250 seconds) |
2022-02-08 19:52:00 +0100 | mmhat | (~mmh@55d4a370.access.ecotel.net) |
2022-02-08 19:54:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 19:54:41 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-02-08 19:55:29 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-02-08 19:55:49 +0100 | Pickchea | (~private@user/pickchea) |
2022-02-08 19:56:50 +0100 | shailangsa | (~shailangs@host86-185-98-37.range86-185.btcentralplus.com) (Remote host closed the connection) |
2022-02-08 19:58:28 +0100 | <safinaskar> | i think rust is absolutely always than haskell, even for writting provers. i can say why i think so, if you want |
2022-02-08 19:58:38 +0100 | <kuribas> | I think the Type in Type issue is being addressed now... |
2022-02-08 19:58:42 +0100 | <kuribas> | in idris. |
2022-02-08 19:59:31 +0100 | <kuribas> | safinaskar: you missed an adjective. |
2022-02-08 20:00:59 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 20:01:44 +0100 | <kuribas> | 3 `div` 0 => |
2022-02-08 20:01:44 +0100 | <kuribas> | let False = True in prim__div_Integer x y |
2022-02-08 20:01:50 +0100 | <kuribas> | interesting :) |
2022-02-08 20:02:26 +0100 | <safinaskar> | kuribas: oops |
2022-02-08 20:02:36 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-02-08 20:02:38 +0100 | <safinaskar> | kuribas: *absolutely always better than haskell :) |
2022-02-08 20:02:53 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-02-08 20:02:56 +0100 | <kuribas> | "better" is a bad qualifier... |
2022-02-08 20:03:22 +0100 | <boxscape_> | safinaskar why are you using haskell? |
2022-02-08 20:03:49 +0100 | <safinaskar> | boxscape_: :) good question |
2022-02-08 20:04:07 +0100 | <maerwald> | rust is way more verbose... if you have chronic pain from RSI, you better not use it xD |
2022-02-08 20:04:09 +0100 | <kuribas> | safinaskar: "safer"? "faster"? "easier to read"? "easier concurrency"? ... |
2022-02-08 20:04:38 +0100 | <dsal> | I've still not managed to find something where rust makes my life better. I do keep meaning to try it again someday. |
2022-02-08 20:05:07 +0100 | <maerwald> | dsal: migrate one of your C projects... that makes it very apparent |
2022-02-08 20:05:17 +0100 | <maerwald> | I did and it was a bliss |
2022-02-08 20:05:35 +0100 | <dsal> | I should do that, yeah. I surely have something lying around in C that I still care about. :) |
2022-02-08 20:05:41 +0100 | <Franciman> | high five maerwald (but cautiously, so we don't get hurt) |
2022-02-08 20:06:39 +0100 | <monochrom> | safinaskar: https://github.com/haskell/cabal/issues/7819 |
2022-02-08 20:06:47 +0100 | <kuribas> | EvanR: I'd think with fancy dependent types, you could prove the denominator nonzero... |
2022-02-08 20:07:05 +0100 | <maerwald> | Franciman: I thought you left for that HVM :p |
2022-02-08 20:07:23 +0100 | <safinaskar> | boxscape_: "why are you using haskell?" - currently i'm writting rust library for working with binary format apache avro. i'm missing haskell's GADTs, so now i am writting gadt-style avro implementation in haskell as an experiment. But I already got first problem: i have to use ugly singletons (i talked about my task yesterday here). So, this even further proves that rust is better than haskell. Yes, rust doesn't have GADTs, but in haskell GADTs are |
2022-02-08 20:07:23 +0100 | <safinaskar> | not so useful either, because any suffentiently hard task will depend on singletons |
2022-02-08 20:07:24 +0100 | <kuribas> | I am a bit done with haskell, in that it doesn't have much secrets left for me... |
2022-02-08 20:07:27 +0100 | <EvanR> | kuribas, you could |
2022-02-08 20:07:56 +0100 | <EvanR> | or you could ask the bot to divide by zero without doing that and it crashes xD |
2022-02-08 20:08:24 +0100 | <kuribas> | err :total div => Prelude.Num.div is total |
2022-02-08 20:08:24 +0100 | <EvanR> | I guess if you have the phD to program with dependent types, you wouldn't do something so dumb |
2022-02-08 20:08:26 +0100 | <DigitalKiwi> | ugh and i thought haskell was supposed to be safe! |
2022-02-08 20:08:37 +0100 | <Franciman> | maerwald: i don't code anymore these days |
2022-02-08 20:08:39 +0100 | <EvanR> | kuribas, yeah it was listed as total so things could compile |
2022-02-08 20:08:44 +0100 | <maerwald> | Franciman: smart choice |
2022-02-08 20:08:45 +0100 | <DigitalKiwi> | letting you divide by zero is gross |
2022-02-08 20:08:51 +0100 | <Franciman> | so i have more time left for saying bullshit |
2022-02-08 20:08:56 +0100 | <maerwald> | xD |
2022-02-08 20:08:57 +0100 | <kuribas> | EvanR: I don't think idris is meant as a proof system. |
2022-02-08 20:09:01 +0100 | <Franciman> | and laughing at the lack of a formal semantics of haskell in the standard |
2022-02-08 20:09:07 +0100 | <Franciman> | standard ML is centuries ahead |
2022-02-08 20:09:22 +0100 | <kuribas> | EvanR: I mean, writing programs as proof, rather than the other way. |
2022-02-08 20:09:22 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Read error: Connection reset by peer) |
2022-02-08 20:09:25 +0100 | <maerwald> | There's also CakeML |
2022-02-08 20:09:29 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-08 20:09:31 +0100 | <Franciman> | fancy |
2022-02-08 20:09:39 +0100 | <EvanR> | kuribas, well, regardless any time someone proves false, it was listed as a bug and presumably needed to be fixed (except for this) |
2022-02-08 20:09:43 +0100 | <boxscape_> | safinaskar If I'm understanding your argument correctly it's "rust doesn't have a feature I like, Haskell does have that feature but it's limited, therefore rust is better"? |
2022-02-08 20:10:08 +0100 | <maerwald> | yeah, Haskell was never a choice for projects like everest or seL4 linux I think |
2022-02-08 20:10:32 +0100 | <maerwald> | but I usually don't code crypto libraries or kernels, so... |
2022-02-08 20:11:12 +0100 | <maerwald> | it's like cutting an apple with a samurai sword |
2022-02-08 20:11:17 +0100 | <kuribas> | safinaskar: rust doesn't have singletons, does it? |
2022-02-08 20:11:34 +0100 | <safinaskar> | boxscape_: yes. and this argument should be combined with other rust arguments, such as "faster", "bigger community" etc |
2022-02-08 20:11:54 +0100 | <safinaskar> | kuribas: doesn't. and this is good, because singletons are ugly |
2022-02-08 20:12:07 +0100 | <maerwald> | rust has the advantage that it was kickstarted by a large company |
2022-02-08 20:12:10 +0100 | <kuribas> | safinaskar: I agree about that. Not about "I have to use singletons". |
2022-02-08 20:12:31 +0100 | <EvanR> | was it really, which company? |
2022-02-08 20:12:35 +0100 | <safinaskar> | maerwald: what is RSI? |
2022-02-08 20:12:46 +0100 | <ski> | Repetetive Stress Injury |
2022-02-08 20:12:59 +0100 | <monochrom> | maerwald: I think sword makers cut toilet paper with swords to show off. :) |
2022-02-08 20:13:03 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) |
2022-02-08 20:13:06 +0100 | <maerwald> | EvanR: Mozilla research? |
2022-02-08 20:13:11 +0100 | <kuribas> | "any suffentiently hard task will depend on singletons" <= Apparently I never did a hard task in haskell :) |
2022-02-08 20:13:23 +0100 | <maerwald> | EvanR: and not in order to waste money, but to use it |
2022-02-08 20:13:32 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-02-08 20:13:54 +0100 | <kuribas> | safinaskar: it looks like you are falling in the fancy type level haskell trap. |
2022-02-08 20:14:15 +0100 | <safinaskar> | kuribas: "safer", "faster", "easier to read" and more productive. rust is simply better suited for any task, even for provers |
2022-02-08 20:14:24 +0100 | <EvanR> | :thonk: |
2022-02-08 20:14:49 +0100 | <monochrom> | To reduce RSI, please stop using IRC. :) |
2022-02-08 20:14:54 +0100 | ChanServ | +o geekosaur |
2022-02-08 20:14:56 +0100 | <kuribas> | safinaskar: I hardly know any rust, I only looked at some parser library, and it looked much less neat than in haskell. |
2022-02-08 20:15:33 +0100 | <kuribas> | safinaskar: I also wonder how it could be "safer"? |
2022-02-08 20:15:46 +0100 | <monochrom> | kuribas: The hardware is a singleton. I would think every program has to depend on that singleton. :) |
2022-02-08 20:15:52 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2022-02-08 20:16:05 +0100 | <EvanR> | we need to put together yet another giant addictive profitable MMORPG. Use haskell or rust?? |
2022-02-08 20:16:10 +0100 | <kuribas> | monochrom: I think he refers to the "singleton" library, or not? |
2022-02-08 20:16:44 +0100 | <EvanR> | the universe is a singleton, unless you use many worlds |
2022-02-08 20:17:04 +0100 | <geekosaur> | evenif you use many worlds, unless you're using some popular misconception of it |
2022-02-08 20:17:05 +0100 | Kaiepi | (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
2022-02-08 20:17:34 +0100 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-02-08 20:17:45 +0100 | <monochrom> | I can actually mean it to be serious. A week ago we had a discussion on how much we need global variables. Well, we still need them for coordinating multiple threads that try to access the same piece of hardware, for example we have only one GPU (usually) and its API exposes a scarce resource... |
2022-02-08 20:18:23 +0100 | <EvanR> | well you need a shared variable for locking access |
2022-02-08 20:18:53 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-08 20:19:13 +0100 | <EvanR> | or multiple if the clients form a hierarchy |
2022-02-08 20:19:41 +0100 | <monochrom> | w00t we need a plural of singetons! |
2022-02-08 20:19:52 +0100 | <EvanR> | a multiton |
2022-02-08 20:20:07 +0100 | <boxscape_> | "singletons" is already in plural form |
2022-02-08 20:20:15 +0100 | <DigitalKiwi> | ty boxscape_ |
2022-02-08 20:20:15 +0100 | <monochrom> | "it's singletons all the way down" |
2022-02-08 20:21:59 +0100 | k8yun_ | (~k8yun@user/k8yun) (Quit: Leaving) |
2022-02-08 20:23:41 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) (Quit: Client closed) |
2022-02-08 20:23:53 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) |
2022-02-08 20:25:07 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 20:25:26 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 20:27:35 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 20:28:26 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) |
2022-02-08 20:29:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 20:32:01 +0100 | raym | (~raym@user/raym) (Quit: kernel update, rebooting...) |
2022-02-08 20:33:19 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-02-08 20:33:54 +0100 | <safinaskar> | (i am writting big rant why rust is better than haskell. i will show it when it is done. want nearly 5 mins) |
2022-02-08 20:34:34 +0100 | <geekosaur> | you can send it somewhere other than #haskell |
2022-02-08 20:34:55 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-08 20:35:00 +0100 | <geekosaur> | this is what blogs arefor |
2022-02-08 20:37:11 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Remote host closed the connection) |
2022-02-08 20:37:43 +0100 | <Inst> | thanks @yuvi |
2022-02-08 20:37:45 +0100 | <Inst> | ugh, he's gone |
2022-02-08 20:37:52 +0100 | <EvanR> | clearly the only way forward is to design mortal kombat representations of rust and haskell and have a tournament |
2022-02-08 20:37:55 +0100 | <Inst> | and yeah, that's extremely pretty |
2022-02-08 20:38:07 +0100 | <Inst> | has to be coded in C, though |
2022-02-08 20:38:20 +0100 | <Inst> | erm, not C, prolog |
2022-02-08 20:39:00 +0100 | <EvanR> | "why are we fighting" "no idea, ask safinaskar khan" |
2022-02-08 20:39:59 +0100 | <Inst> | jeez, i'm such an imbecile |
2022-02-08 20:40:00 +0100 | <DigitalKiwi> | does geekosaur have a problem with space key |
2022-02-08 20:40:04 +0100 | <Inst> | i've never seen code like yuvi's before |
2022-02-08 20:40:06 +0100 | <geekosaur> | yes |
2022-02-08 20:40:28 +0100 | <geekosaur> | and randomly other keys that get duplicated |
2022-02-08 20:40:38 +0100 | <DigitalKiwi> | :( |
2022-02-08 20:40:52 +0100 | <safinaskar> | geekosaur: i don't have a blog. and don't want to create one |
2022-02-08 20:41:02 +0100 | <dolio> | Well, this isn't your blog. |
2022-02-08 20:41:06 +0100 | <safinaskar> | geekosaur: okey, i will send to #rust, too :) |
2022-02-08 20:41:09 +0100 | <geekosaur> | so you feel entirely entitled to make noise here |
2022-02-08 20:41:18 +0100 | <safinaskar> | i will send the rant using pastebin, don't worry |
2022-02-08 20:41:27 +0100 | <Inst> | have you tried trolling the pythonistas instead? |
2022-02-08 20:41:29 +0100 | raym | (~raym@user/raym) |
2022-02-08 20:42:05 +0100 | <Inst> | and safinaskar: Haskell actually does suck |
2022-02-08 20:42:14 +0100 | econo | (uid147250@user/econo) |
2022-02-08 20:42:22 +0100 | <geekosaur> | but so does everything else |
2022-02-08 20:42:37 +0100 | <Inst> | Haskell just has a very specific use-case, Haskellers like using Haskell for Haskell use-cases, etc |
2022-02-08 20:42:45 +0100 | <dsal> | This channel has a weird attraction to people who think they understand things. |
2022-02-08 20:42:52 +0100 | <Inst> | sorry |
2022-02-08 20:42:53 +0100 | <Inst> | ;_; |
2022-02-08 20:43:07 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-02-08 20:43:13 +0100 | <monochrom> | dsal: My decades of experience in physics and math channels, too. |
2022-02-08 20:43:19 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-08 20:43:25 +0100 | <EvanR> | haskell is a general purpose programming language |
2022-02-08 20:43:30 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-08 20:43:46 +0100 | <EvanR> | the opposite of "specific use-cases" |
2022-02-08 20:43:47 +0100 | <monochrom> | People come in to say how they think they have trumped professional physicists or mathematicians. |
2022-02-08 20:43:48 +0100 | <geekosaur> | every generalpurpose programming language has its Turing tarpits |
2022-02-08 20:43:51 +0100 | <dsal> | I'm working at a company that uses Haskell as a general programming language for doing general stuff. There's nothing particularly haskell-specific of just about anything we do. |
2022-02-08 20:44:12 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-08 20:44:55 +0100 | <monochrom> | Fortunately mostly "my physics/math is better than yours" rather than "my religion is better than physics/math". |
2022-02-08 20:45:14 +0100 | <Inst> | haskell is primarily a highly pure functional programming language which is a popular haunt of academics to dump their new language extensions in |
2022-02-08 20:45:18 +0100 | <dsal> | I bet those idiots don't even know how to divide by zero. |
2022-02-08 20:45:21 +0100 | <Inst> | as GP, so, why is it so hard to do GUI? |
2022-02-08 20:45:39 +0100 | <dsal> | If C is a general programming language, why is it so hard to do anything at all? |
2022-02-08 20:46:11 +0100 | <EvanR> | it's "easy" to do GUI the same terrible way everyone else does |
2022-02-08 20:46:13 +0100 | <monochrom> | Hey I know how to divide by zero in C! >:) |
2022-02-08 20:46:25 +0100 | <EvanR> | which non-coincidentally, sucks |
2022-02-08 20:46:44 +0100 | <EvanR> | though immediate mode gui might be easier even in haskell |
2022-02-08 20:47:10 +0100 | <geekosaur> | we've had gtk2hs for a decade. I think it still works. and gi-gtk is still well maintained. it's just not Haskelly |
2022-02-08 20:47:14 +0100 | <Inst> | okay, fine, i'm butchering the english language again, specific use-case includes stuff like availability of coders, performance constraints and specifications |
2022-02-08 20:47:25 +0100 | <Inst> | i mean rust def beats haskell on performance for idiomatic code, no? |
2022-02-08 20:47:31 +0100 | <dsal> | We hire people who've never programmed in Haskell and have them work on Haskell. |
2022-02-08 20:47:38 +0100 | <EvanR> | depends on who runs the benchmarks |
2022-02-08 20:47:48 +0100 | <monochrom> | Why argue? |
2022-02-08 20:47:52 +0100 | <Inst> | dsal: what's your training time? |
2022-02-08 20:47:54 +0100 | <monochrom> | Show data. |
2022-02-08 20:48:17 +0100 | <dsal> | Most of what slows down our production code is dumb database access patterns. It doesn't matter what language you write a dumb database access pattern in. |
2022-02-08 20:48:21 +0100 | <davean> | Inst: I'd say thats varied. Their idiom is messier. The type of code matters a LOT |
2022-02-08 20:49:03 +0100 | geekosaur | -o geekosaur |
2022-02-08 20:49:03 +0100 | <dsal> | I had similar complaints when I worked in erlang. "C is so much faster!" Turns out, that actually wasn't even true given CPU loads, but the disk doesn't care about the accent of the request sender. |
2022-02-08 20:49:26 +0100 | <polyphem> | monochrom: • No instance for (Show (data)) arising from a use of ‘Show Data’ |
2022-02-08 20:49:38 +0100 | <monochrom> | Heh |
2022-02-08 20:49:56 +0100 | <Inst> | did safinaskar run away? |
2022-02-08 20:50:01 +0100 | <dsal> | Inst: I spent significantly longer learning how to use google frameworks in languages I "knew" at Google than we spend getting people productive in Haskell at this organization, as far as I can tell. |
2022-02-08 20:50:07 +0100 | <davean> | dsal: well, disks sorta care. They like deep queues if they're modern NVMe for example. How well async IO works matters a ton. Or if they're HDDs the opposite. |
2022-02-08 20:50:24 +0100 | <geekosaur> | went off to troll #rust, I think |
2022-02-08 20:51:28 +0100 | <dsal> | davean: This was a while back. We were waiting for seeks on spinning disks. The benchmark people claimed to care about was a single-core cheap developer laptop. The C alternative they tried *was* faster there, but by the time you got to two cores, the overall performance was better in erlang. It just used more CPU. |
2022-02-08 20:52:12 +0100 | <davean> | dsal: right. I will say languages vary a TON by how well they interact with async IO though |
2022-02-08 20:52:15 +0100 | <dsal> | Right now, most of our code is waiting on database transactions or external API calls. If the code runs faster, it's not going to matter. There are a few bits that are computationally expensive theoretically, but we can FFI those. |
2022-02-08 20:52:22 +0100 | <davean> | thats only true of people doing ACTUAL high performance stuff |
2022-02-08 20:52:26 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-08 20:52:28 +0100 | <monochrom> | Yay EvanR was right, "depends on who runs the benchmarks" :) |
2022-02-08 20:52:30 +0100 | <davean> | and ... if you have to think about it, you aren't one of them |
2022-02-08 20:52:40 +0100 | <dsal> | Right. It wasn't even a question. |
2022-02-08 20:53:01 +0100 | <davean> | VERY few people are actually intimate with the HW enough to do real optimizations here |
2022-02-08 20:54:16 +0100 | <Inst> | does it just prove i'm a noob |
2022-02-08 20:54:34 +0100 | <dsal> | I don't think we were seeking proof. |
2022-02-08 20:54:38 +0100 | <davean> | Inst: 99+% of profesionals in any given field are noobs, don't feel bad |
2022-02-08 20:54:38 +0100 | <Inst> | if i still find this code incredibly beautiful / fascinating? https://paste.tomsmeding.com/IgquexPc |
2022-02-08 20:55:03 +0100 | <davean> | Inst: you walk into a room of 1000 people well regarded in their field and you MIGHT find someone who knows WTF they're talking about |
2022-02-08 20:55:15 +0100 | <EvanR> | dunno if this is still at thing but spec cpu benchmarks were this thing that cpu designers could target and win against other cpus. Whether or not this is stuff consumers would use cpus for. |
2022-02-08 20:55:23 +0100 | <EvanR> | They shouldn't have put some functional problems in there xD |
2022-02-08 20:55:24 +0100 | <Inst> | sturgeon's law, but i'm a blowhard, sort of like safinaskar except i post more often |
2022-02-08 20:55:26 +0100 | <EvanR> | should've |
2022-02-08 20:55:58 +0100 | <davean> | Noobs can do good work, they just have to have more goes at it |
2022-02-08 20:55:59 +0100 | <Inst> | i guess it just means i really don't understand foldr ;_; |
2022-02-08 20:56:15 +0100 | <EvanR> | foldr is the easy one if you're lazy |
2022-02-08 20:56:21 +0100 | <EvanR> | foldl is easy if you're eager |
2022-02-08 20:56:23 +0100 | <Inst> | f x (f x2... (f xz []) |
2022-02-08 20:56:26 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-08 20:57:52 +0100 | <EvanR> | > foldr (\x _ -> x) 'z' (cycle "hello world ") |
2022-02-08 20:57:53 +0100 | <lambdabot> | 'h' |
2022-02-08 20:58:23 +0100 | <Inst> | that's this code, right? |
2022-02-08 20:58:24 +0100 | <Inst> | https://en.wikipedia.org/wiki/Continuation-passing_style |
2022-02-08 20:58:30 +0100 | boxscape_ | (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-02-08 20:58:39 +0100 | <Inst> | i mean, re yuvi's code |
2022-02-08 20:58:53 +0100 | <EvanR> | what |
2022-02-08 21:00:30 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-08 21:00:48 +0100 | <dsal> | What is the type of `startsWith'`? |
2022-02-08 21:01:24 +0100 | <safinaskar> | so, i finally wrote the rant. Rust is better than haskell for everything, even for provers. https://zerobin.net/?4ae40c2bc3cd95df#xogo0KqhD5e8oXCCSGvF0CeyijPjWWN3L824v4LzGFQ= |
2022-02-08 21:01:42 +0100 | <Inst> | (Foldable t, Eq a) => t a -> [a] -> Bool |
2022-02-08 21:01:42 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-08 21:01:48 +0100 | <Inst> | safinaskar: one liner: Haskell got me laid. |
2022-02-08 21:02:55 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-08 21:03:12 +0100 | <Inst> | i guess he has nothing else to say |
2022-02-08 21:03:14 +0100 | Inst | shrugs |
2022-02-08 21:04:19 +0100 | <ski> | <yuvi> the type is startsWith :: String -> String -> Bool |
2022-02-08 21:05:15 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 250 seconds) |
2022-02-08 21:05:40 +0100 | <kuribas> | dsal: I think haskell is great for abstracting over the database. |
2022-02-08 21:05:40 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-08 21:05:50 +0100 | <kuribas> | dsal: hence haskell is the fastest language :) |
2022-02-08 21:06:50 +0100 | <kuribas> | dsal: for example, I wrote a (applicative) batching effect, which can easily collect results. |
2022-02-08 21:06:57 +0100 | <kuribas> | dsal: it worked from the first time. |
2022-02-08 21:07:20 +0100 | juhp | (~juhp@128.106.188.82) |
2022-02-08 21:07:25 +0100 | <kuribas> | good luck doing it in a "fast" language like C++. |
2022-02-08 21:07:37 +0100 | <EvanR> | the first time at least |
2022-02-08 21:08:16 +0100 | <EvanR> | would not be surprised if C++ already has Applicative xD |
2022-02-08 21:09:22 +0100 | <kuribas> | everytime I look at java API's I cringe about the complexity. |
2022-02-08 21:09:23 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-08 21:09:25 +0100 | <kuribas> | Like the cron library. |
2022-02-08 21:09:36 +0100 | <kuribas> | And C++ must be even worse... |
2022-02-08 21:09:42 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:4e49:abcb:9c05:c4b8) (Ping timeout: 260 seconds) |
2022-02-08 21:10:06 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 21:11:33 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-02-08 21:11:58 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:30a6:9d4e:5fe4:7e50) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-08 21:12:30 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2022-02-08 21:14:30 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-08 21:14:56 +0100 | <kuribas> | EvanR: Why do you think you need a PHD to write idris? I believe that writing type level haskell is harder than DT idris. |
2022-02-08 21:15:14 +0100 | <EvanR> | Inst, in case of infinite list your expansion is more like f x1 (f x2 (f x3 (... forcing you harder to understand laziness |
2022-02-08 21:15:41 +0100 | <EvanR> | kuribas, semi joking |
2022-02-08 21:15:42 +0100 | <Inst> | oh, i think yuvi's code is actually broken |
2022-02-08 21:15:52 +0100 | <Inst> | well, no, it's not |
2022-02-08 21:15:56 +0100 | <EvanR> | it's just everyone in the idris channel has phDs so |
2022-02-08 21:16:19 +0100 | <Inst> | was briefly thinking about inf list situation, but that's not needed because the prefix is carrying the code |
2022-02-08 21:16:21 +0100 | <dolio> | I don't have a PhD. |
2022-02-08 21:16:30 +0100 | neurocyte0917090 | (~neurocyte@ip-094046064199.dynamic.medianet-world.de) |
2022-02-08 21:16:30 +0100 | neurocyte0917090 | (~neurocyte@ip-094046064199.dynamic.medianet-world.de) (Changing host) |
2022-02-08 21:16:30 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-02-08 21:16:36 +0100 | <EvanR> | really? surprised xD |
2022-02-08 21:17:30 +0100 | <monochrom> | I have a PhD and I would rather study more type theories than write more type level Haskell. PhDs actually have good tastes for how to spend their time! |
2022-02-08 21:17:59 +0100 | <[exa]> | my phd is literally about finding drugs and drawing pictures, does that still count? |
2022-02-08 21:19:09 +0100 | <EvanR> | Inst, just in general for "understanding foldr" |
2022-02-08 21:19:17 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-02-08 21:21:09 +0100 | <kuribas> | EvanR: I am in the channel too :) |
2022-02-08 21:21:22 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-08 21:21:59 +0100 | <monochrom> | ooohhhh the true statement is "everyone in #idris thinks everyone else has a PhD" |
2022-02-08 21:22:57 +0100 | <EvanR> | doctor. doctor. doctor. doctor doct.... |
2022-02-08 21:24:00 +0100 | <EvanR> | (n^2 / 2 handshakes) |
2022-02-08 21:24:01 +0100 | <safinaskar> | monochrom: https://github.com/haskell/cabal/issues/7819 - thanks |
2022-02-08 21:25:02 +0100 | nahcetan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-02-08 21:25:49 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 21:26:14 +0100 | <int-e> | EvanR: so half of the people are shaking hands with themselves? |
2022-02-08 21:26:45 +0100 | <[exa]> | (n^2 / 2) even leaves us with a dangerous half-handshake |
2022-02-08 21:26:58 +0100 | <EvanR> | 🤔 |
2022-02-08 21:27:05 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) (Remote host closed the connection) |
2022-02-08 21:27:21 +0100 | <janus> | if a half-handshake is a fist bump, it could be safer |
2022-02-08 21:27:41 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-08 21:27:47 +0100 | <geekosaur> | or elbow bump (covid y'know) |
2022-02-08 21:27:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-08 21:28:31 +0100 | <monochrom> | Let's make an app for virtual AR handshakes over Zoom or something... |
2022-02-08 21:28:42 +0100 | ski | . o O ( half-duplex ) |
2022-02-08 21:28:55 +0100 | kuribas | (~user@ptr-25vy0i8mlszjpxncneu.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2022-02-08 21:29:12 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 21:29:13 +0100 | <monochrom> | Introduce a thing analogous to avatars, but this time for hands. You can customize what your hand looks like. |
2022-02-08 21:29:24 +0100 | <monochrom> | And make some of them NFTs bwhahahaha |
2022-02-08 21:29:33 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-02-08 21:29:33 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-02-08 21:29:33 +0100 | finn_elija | FinnElija |
2022-02-08 21:30:04 +0100 | geekosaur | still hasn't gotten used to fistbumps and now we got those elbow bumps, what next? |
2022-02-08 21:30:21 +0100 | <monochrom> | eye winks |
2022-02-08 21:30:24 +0100 | monochrom | winks |
2022-02-08 21:30:28 +0100 | <EvanR> | non-euclidean geometry bumps |
2022-02-08 21:30:31 +0100 | <safinaskar> | kuribas: "Not about "I have to use singletons"." well, yesterday i presented this code here: https://paste.debian.net/1230075/ . i tried to use GADTs in them. and i understood that i need to use singletons to use GADTs in this code. the only other way is not to use GADTs, but then there is no advantages over rust |
2022-02-08 21:30:33 +0100 | geekosaur | blinks |
2022-02-08 21:31:11 +0100 | <EvanR> | rust = haskell - GADTs huh |
2022-02-08 21:31:13 +0100 | <sshine> | geekosaur, emojis with unicode zero-width joiners |
2022-02-08 21:31:40 +0100 | <monochrom> | Oh, you could also consider saying "elbow bump" orally, as opposed to doing it... |
2022-02-08 21:31:54 +0100 | <int-e> | monochrom: Hmm, what could NFTs be... Non-euclidean F? Tentacles |
2022-02-08 21:33:25 +0100 | <monochrom> | Oh, you could also dab, for old time's sake. "old time". :) |
2022-02-08 21:34:19 +0100 | <janus> | @package old-time was last revised by herbert in 2017 |
2022-02-08 21:34:19 +0100 | <lambdabot> | https://hackage.haskell.org/package/old-time was last revised by herbert in 2017 |
2022-02-08 21:35:39 +0100 | <safinaskar> | (by "singleton" i meant hackage package "singleton", of course) |
2022-02-08 21:36:03 +0100 | <sshine> | when will Haskell get NFDTs? non-fungible data structures. |
2022-02-08 21:36:25 +0100 | <sshine> | this is the post-ICO era, after all. |
2022-02-08 21:36:32 +0100 | <EvanR> | this is weak sauce, I need the full list of terrible stuff in haskell. singletons is a dead horse |
2022-02-08 21:37:16 +0100 | <EvanR> | sshine, linear types? |
2022-02-08 21:37:24 +0100 | <janus> | EvanR: acid-state, unmaintained stack, partial functions in base, monad of no return still not implemented, mtl 2.3 dragging on for years |
2022-02-08 21:37:49 +0100 | <safinaskar> | monochrom: "A week ago we had a discussion on how much we need global variables" - in rust (using crate "crossbeam"'s scoped threads) you don't need global variables even for synchronizing threads. You simply have local variables and access them from scoped threads (and rust forces you to use proper locking) |
2022-02-08 21:37:57 +0100 | <sshine> | 💪-bump |
2022-02-08 21:38:49 +0100 | <EvanR> | proper locking sounds relative to the developer |
2022-02-08 21:39:10 +0100 | <EvanR> | an audio developer will see "proper locking" and exclaim improperness |
2022-02-08 21:39:13 +0100 | <hololeap> | safinaskar: you do realize that a lot of haskell developers also use and enjoy rust, right? what are you trying to prove here? |
2022-02-08 21:39:44 +0100 | <[exa]> | is there #haskell-rust ? |
2022-02-08 21:40:31 +0100 | <monochrom> | is there #harsuksetll so haskell and rust blend together? >:) |
2022-02-08 21:40:54 +0100 | <janus> | [exa]: there is https://github.com/koka-lang/koka/discussions |
2022-02-08 21:41:14 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-02-08 21:41:33 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-08 21:41:54 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:a48f:8f89:30fa:5637) (Ping timeout: 260 seconds) |
2022-02-08 21:41:54 +0100 | xff0x | (~xff0x@2001:1a81:533f:ea00:4e49:abcb:9c05:c4b8) |
2022-02-08 21:42:06 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds) |
2022-02-08 21:43:07 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 21:43:30 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 21:43:55 +0100 | <ski> | safinaskar : `read :: forall a. String -> Avro a; read @CString x = ...' -- huh ? |
2022-02-08 21:45:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 21:46:02 +0100 | <[exa]> | janus: ok wow. :] |
2022-02-08 21:46:59 +0100 | <janus> | i dunno if that is what you thought of when you said haskell-rust, but i would think it appeals to both since it has fancy typing but also in-place computation? |
2022-02-08 21:47:47 +0100 | <[exa]> | no I was reacting to the other discussion there, but I had no idea koka exists and it looks pretty cool |
2022-02-08 21:48:01 +0100 | <[exa]> | so yeah you hit it. :D |
2022-02-08 21:48:12 +0100 | <EvanR> | functional reactive discussing |
2022-02-08 21:49:27 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2022-02-08 21:49:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 21:49:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 21:50:39 +0100 | <dminuoso> | Also, "locking" for concorrent access is synchronization. |
2022-02-08 21:51:52 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 21:52:56 +0100 | <dminuoso> | Ah I misinterpreted perhaps. |
2022-02-08 21:54:20 +0100 | <dminuoso> | safinaskar: Also, you dont *need* global variables indeed. The actor model gets away without it, and is the predominant synchronization mechanism in most Erlang/OTP architectures |
2022-02-08 21:54:56 +0100 | <dminuoso> | That way you can avoid the need of locking entirely |
2022-02-08 21:58:20 +0100 | <EvanR> | software transactional memory is cool |
2022-02-08 21:59:28 +0100 | <dolio> | You can just reject the entire premise that leads to 'needing' global variables in that argument. |
2022-02-08 22:00:11 +0100 | <safinaskar> | ski: "read @CString x = ...' -- huh" - i tried to pattern match on "a" (note that "a :: Typ") |
2022-02-08 22:00:31 +0100 | <ski> | safinaskar : that's not how parametric polymorphism works |
2022-02-08 22:00:57 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-08 22:01:04 +0100 | <ski> | if you want to use GADTs to get around such problems, you must match on a GADT *input* |
2022-02-08 22:02:40 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-08 22:03:01 +0100 | <ski> | (perhaps that input could be a defunctionalized continuation corresponding to `Avro a -> ...'. or perhaps it would just be some kind of selector describing which `a' you want to look for) |
2022-02-08 22:03:05 +0100 | zebrag | (~chris@user/zebrag) |
2022-02-08 22:03:29 +0100 | <ski> | (or else, you could simply let `read' try to parse all the possible inputs, and compute the appropriate `a' (in result type) for each case) |
2022-02-08 22:04:30 +0100 | <safinaskar> | EvanR: this article http://joeduffyblog.com/2010/01/03/a-brief-retrospective-on-transactional-memory/ proves that STM is bad thing (compared to usual mutexes, at least in imperative languages) |
2022-02-08 22:04:46 +0100 | <EvanR> | interesting |
2022-02-08 22:05:30 +0100 | <EvanR> | I'll have to see why it's wrong later |
2022-02-08 22:05:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dd3b:3d16:5046:6705) |
2022-02-08 22:06:10 +0100 | <dibblego> | over-confident, ill-informed opinions are why I fly aeroplanes |
2022-02-08 22:06:11 +0100 | <dolio> | The author wasn't using Haskell. |
2022-02-08 22:07:26 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 256 seconds) |
2022-02-08 22:08:20 +0100 | foul_owl | (~kerry@94.140.8.51) (Read error: Connection reset by peer) |
2022-02-08 22:08:26 +0100 | <safinaskar> | dolio: yes. but he is aware about haskell. in this article http://joeduffyblog.com/2016/11/30/15-years-of-concurrency/ he says he have read simon jones article on haskell foundatations multiple times |
2022-02-08 22:08:46 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:6cf2:b906:2bc7:1ff9) |
2022-02-08 22:08:50 +0100 | <[exa]> | I read "let's break stm atomics by doing precisely the first thing the stm atomics are not meant to do" |
2022-02-08 22:08:51 +0100 | <geekosaur> | you can read something many times and still not understand it |
2022-02-08 22:09:20 +0100 | <[exa]> | +1 ^, can confirm on myself. :D :D |
2022-02-08 22:09:49 +0100 | <safinaskar> | why nobody argues about my rant? https://zerobin.net/?4ae40c2bc3cd95df#xogo0KqhD5e8oXCCSGvF0CeyijPjWWN3L824v4LzGFQ= |
2022-02-08 22:10:47 +0100 | <Inst> | because people either agree with it or treat it as irrelevant |
2022-02-08 22:10:57 +0100 | <Inst> | agree with particular points, i mean |
2022-02-08 22:11:40 +0100 | ChanServ | +o geekosaur |
2022-02-08 22:11:42 +0100 | <yushyin> | #haskell is one of my channels with the most users on my ignore list, grows almost daily :) |
2022-02-08 22:11:43 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:30a6:9d4e:5fe4:7e50) |
2022-02-08 22:11:49 +0100 | <Inst> | :( |
2022-02-08 22:12:41 +0100 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2022-02-08 22:13:28 +0100 | ski | 's never used `/ignore' |
2022-02-08 22:13:41 +0100 | geekosaur | doesn't either |
2022-02-08 22:14:14 +0100 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2022-02-08 22:15:02 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 250 seconds) |
2022-02-08 22:16:39 +0100 | <Franciman> | safinaskar: i suggest you rephrase your rant's title as: why rust is more useful for me than haskell |
2022-02-08 22:16:55 +0100 | <Franciman> | because othersmay have different needs than yours |
2022-02-08 22:17:14 +0100 | <Franciman> | for example i personally never use cabal, nor stack |
2022-02-08 22:17:16 +0100 | <geekosaur> | safinaskar has been openy confrontational every time they've come here. I'm quite certain a non-confrontational title is not acceptable |
2022-02-08 22:17:28 +0100 | <Franciman> | so your point about cabal stack dicotomy doesn't stand for me |
2022-02-08 22:17:57 +0100 | <Franciman> | second point, all the times i used cabal, i could use it with every package |
2022-02-08 22:18:04 +0100 | <Franciman> | so again, the dicotomy has no issue for me |
2022-02-08 22:18:21 +0100 | <janus> | it's not worth arguing about when anybody is smart enough to know how they're cutting corners in their arguments. |
2022-02-08 22:18:31 +0100 | <Inst> | it's a troll |
2022-02-08 22:18:34 +0100 | <Franciman> | regarding «i don't need types, so they are not useful» |
2022-02-08 22:18:39 +0100 | <Franciman> | i don't need haskell types either |
2022-02-08 22:18:41 +0100 | <Inst> | don't feed the troll, if you want to entertain safinaskar, query him |
2022-02-08 22:18:42 +0100 | <Franciman> | but rust types are worse |
2022-02-08 22:18:49 +0100 | sclv | encourages people to not feed the troll |
2022-02-08 22:18:49 +0100 | <Franciman> | i usually need idris or agda grade types |
2022-02-08 22:18:50 +0100 | <dolio> | We don't need responses to this "rant". |
2022-02-08 22:18:57 +0100 | sclv | encourages people to talk about interesting things instead |
2022-02-08 22:19:15 +0100 | <dolio> | Just like we don't need the rant. |
2022-02-08 22:19:47 +0100 | <[exa]> | a nice ACM-formatted conference rant would do though |
2022-02-08 22:20:46 +0100 | <dsal> | "proves that STM is a bad thing" is pretty bold as someone who relies on it in production for code that'd be *really* hard to write with "usual mutexes" |
2022-02-08 22:21:09 +0100 | <ph88> | is there a GHC extension of library that allows sum types to be open for extension ? or something that mimics this behaviour ? |
2022-02-08 22:21:27 +0100 | <Inst> | how about I troll safinaskar back? |
2022-02-08 22:21:35 +0100 | <geekosaur> | notin channel |
2022-02-08 22:21:36 +0100 | <Inst> | Rust is just C/C++ with better functional programming support |
2022-02-08 22:21:39 +0100 | <Inst> | oh okay |
2022-02-08 22:21:42 +0100 | <ski> | how about you don't |
2022-02-08 22:22:13 +0100 | emf | (~emf@2620:10d:c090:400::5:57ea) (Quit: emf) |
2022-02-08 22:22:24 +0100 | <sclv> | ph88 there's a lot of libs for open sum tpes |
2022-02-08 22:22:39 +0100 | <Inst> | i queried him, and he's not responding :( |
2022-02-08 22:22:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 22:22:49 +0100 | <sclv> | https://hackage.haskell.org/package/fastsum |
2022-02-08 22:24:26 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 256 seconds) |
2022-02-08 22:24:28 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-02-08 22:24:33 +0100 | <sclv> | ph88: I recommend reading data types a la carte for the basic idea https://webspace.science.uu.nl/~swier004/publications/2008-jfp.pdf |
2022-02-08 22:24:45 +0100 | michalz | (~michalz@185.246.204.75) (Remote host closed the connection) |
2022-02-08 22:25:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 22:25:03 +0100 | foul_owl | (~kerry@23.82.194.73) |
2022-02-08 22:25:28 +0100 | bliminse | (~bliminse@host86-188-36-166.range86-188.btcentralplus.com) (Quit: leaving) |
2022-02-08 22:25:50 +0100 | <ph88> | thanks sclv |
2022-02-08 22:25:51 +0100 | myShoggoth | (~myShoggot@75.164.32.244) |
2022-02-08 22:25:59 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) (Quit: Client closed) |
2022-02-08 22:26:10 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-02-08 22:26:59 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-08 22:27:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-08 22:28:28 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2022-02-08 22:28:56 +0100 | k8yun | (~k8yun@user/k8yun) |
2022-02-08 22:29:42 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) |
2022-02-08 22:31:36 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-02-08 22:31:42 +0100 | sektor|3 | (~kvirc@94.155.193.66) |
2022-02-08 22:31:59 +0100 | bliminse | (~bliminse@host86-188-36-166.range86-188.btcentralplus.com) |
2022-02-08 22:33:25 +0100 | mmhat | (~mmh@55d4a370.access.ecotel.net) (Ping timeout: 250 seconds) |
2022-02-08 22:34:12 +0100 | <Inst> | why is Safinaskar not arguing with me about my counterrant? |
2022-02-08 22:34:30 +0100 | <dolio> | We don't need updates about this, either. |
2022-02-08 22:34:57 +0100 | sektor|2 | (~kvirc@87.227.175.182) (Ping timeout: 256 seconds) |
2022-02-08 22:35:01 +0100 | <Inst> | in reality he's extremely reasonable about it, and I explained to him, "very few people really know Haskell, and most people go through the same process you do, then eventually they learn more Haskell and figure out their complaint was misplaced" |
2022-02-08 22:37:11 +0100 | slack5035 | (~slack1256@191.126.99.83) (Remote host closed the connection) |
2022-02-08 22:37:21 +0100 | <geekosaur> | Inst, please take this elsewhere |
2022-02-08 22:37:46 +0100 | <Inst> | k, done |
2022-02-08 22:39:29 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-08 22:40:17 +0100 | <Franciman> | i can understand people being annoyed to answer to imprecise critiques to haskell |
2022-02-08 22:40:28 +0100 | <Franciman> | but i don't understand why actiely repeating: we don't need to answer |
2022-02-08 22:40:39 +0100 | <Franciman> | do you prefer messages to be either: |
2022-02-08 22:40:52 +0100 | <Franciman> | - technical questions about haskell |
2022-02-08 22:40:58 +0100 | <Franciman> | - love messages on haskell |
2022-02-08 22:41:00 +0100 | <Franciman> | ? |
2022-02-08 22:41:13 +0100 | <geekosaur> | polite discussion is encouraged. responding to someone who's being actively confrontational is not |
2022-02-08 22:41:14 +0100 | <Franciman> | asking to align |
2022-02-08 22:42:02 +0100 | <geekosaur> | attitude has a lot to do with how what you say will be received |
2022-02-08 22:42:12 +0100 | <Franciman> | say is the keyword :D |
2022-02-08 22:42:17 +0100 | <geekosaur> | and it's not as if everyone here thinks haskell is flawless |
2022-02-08 22:42:36 +0100 | <Franciman> | we write, don't say |
2022-02-08 22:42:39 +0100 | <Franciman> | but ok, I understand |
2022-02-08 22:45:26 +0100 | <int-e> | safinaskar: Lovely. "All these snags led to the realization that we direly needed a memory model for TM." (But basically they tried to do much more than what Haskell's STM offers... and mostly failed, so it can't be taken as evidence that Haskell's flavor of STM fails.) |
2022-02-08 22:46:02 +0100 | <[exa]> | Franciman: cf. https://gist.github.com/quchen/5280339 :] |
2022-02-08 22:46:02 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection) |
2022-02-08 22:46:11 +0100 | <int-e> | (AFAICS most of the failures can be blamed on those extensions) |
2022-02-08 22:46:15 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-02-08 22:46:58 +0100 | mmhat | (~mmh@55d4b3be.access.ecotel.net) |
2022-02-08 22:48:09 +0100 | <Franciman> | lol |
2022-02-08 22:48:45 +0100 | <safinaskar> | int-e: ok, possibly. i just shared a link |
2022-02-08 22:52:14 +0100 | pgib | (~textual@173.38.117.82) |
2022-02-08 22:54:08 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
2022-02-08 22:54:34 +0100 | <dsal> | STM is bad in most languages that aren't Haskell that have tried it because you can't express a way to do it that's remotely sensible in those languages. e.g., rust has an STM implementation with a big list of things you have to do to use it safely. Few of those unsafe things will compile in Haskell code. |
2022-02-08 22:54:54 +0100 | <EvanR> | myth, STM is awesome. We tried to build STM and failed. Myth busted |
2022-02-08 22:55:09 +0100 | Pickchea | (~private@user/pickchea) |
2022-02-08 22:55:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-08 22:55:22 +0100 | <Franciman> | what about clojure's implementation, dsal ? |
2022-02-08 22:55:53 +0100 | <dsal> | I've not sampled everything… just the few where it might have been relevant to me. |
2022-02-08 22:56:02 +0100 | <dsal> | I have no idea what clojure's looks like. It might be OK. |
2022-02-08 22:56:14 +0100 | <dolio> | Almost everything is going to have the same problems. |
2022-02-08 22:56:28 +0100 | <dsal> | https://github.com/Marthog/rust-stm#stm-safety |
2022-02-08 22:56:30 +0100 | <dolio> | Because the problems are caused by not being pure. |
2022-02-08 22:57:20 +0100 | <dolio> | Or some analogous notion. I was serious when I said the problem was that the author of the article wasn't using Haskell. |
2022-02-08 22:57:49 +0100 | <dolio> | It's not enough to be aware of Haskell if almost every language lacks a fundamental aspect that makes STM viable. |
2022-02-08 22:58:20 +0100 | <dsal> | rust fails to allow the library author to build code that can be used safely. In haskell, STM is great. In a language like rust, it requires you to think a lot harder and might not be better than just doing a simple thing. |
2022-02-08 22:58:30 +0100 | <monochrom> | janus: I had been too lazy to take a look at algebraic effects. Koka looks like a very nice and concrete gateway drug. Thanks! Maybe one day I could also teach this approach in a "principles of programming languages" course. |
2022-02-08 22:58:53 +0100 | <dibblego> | I teach people who are "aware of haskell" — they are the hardest. I also teach people who are "aware of how an aeroplane works because MSFS" — also the hardest |
2022-02-08 23:00:03 +0100 | <dolio> | Being aware of Java doesn't make it easier to not write memory leaks in C. |
2022-02-08 23:00:27 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds) |
2022-02-08 23:00:35 +0100 | <Franciman> | i mean, haskell is not pure either |
2022-02-08 23:00:57 +0100 | <Franciman> | so the real problem, to me, seems how confortable it is to write pure code in the language |
2022-02-08 23:01:25 +0100 | <EvanR> | "no true pure language" |
2022-02-08 23:01:38 +0100 | <geekosaur> | haskell prevents you from mixing impure code into pure code |
2022-02-08 23:01:44 +0100 | <Franciman> | :t unsafePerformIO |
2022-02-08 23:01:45 +0100 | <lambdabot> | error: Variable not in scope: unsafePerformIO |
2022-02-08 23:01:49 +0100 | <Franciman> | rip |
2022-02-08 23:01:57 +0100 | <EvanR> | what is this unsafePerformIO you speak of |
2022-02-08 23:01:58 +0100 | <geekosaur> | which right away chops out several of the things that can go wrong with rust-stm |
2022-02-08 23:02:17 +0100 | <monochrom> | What is the point of all these arguments and why it hasn't ended after all these hours? |
2022-02-08 23:02:33 +0100 | <Franciman> | for example, i don't see why standard ML could have a nice STM implementation |
2022-02-08 23:02:37 +0100 | <geekosaur> | everyone is bored? |
2022-02-08 23:03:01 +0100 | <Franciman> | you just have to take care and not use ref functions |
2022-02-08 23:03:08 +0100 | <monochrom> | During which I have already watched a favourite 1-hour TV show and started looking at Koka. |
2022-02-08 23:03:15 +0100 | <geekosaur> | but the type system should be taking care for you |
2022-02-08 23:03:23 +0100 | <monochrom> | And I am not even a fast learner or coder. |
2022-02-08 23:03:38 +0100 | <geekosaur> | which is the point of Haskell's STM, the typesystem prevents all the gotchas |
2022-02-08 23:03:44 +0100 | <yushyin> | monochrom: it's usually always the same discussions here anyway, with mostly the same people involved :) |
2022-02-08 23:03:51 +0100 | <monochrom> | Imagine what you could have accompllished given that all of you read books and write code twice as fast as I can. |
2022-02-08 23:04:06 +0100 | <geekosaur> | you *can't* mix impure code into your pure code. you *can't* nest `atomically`s. etc. |
2022-02-08 23:04:15 +0100 | <EvanR> | but clearly STM has no utility because there's an unsafeSTMtoIO function |
2022-02-08 23:04:20 +0100 | <EvanR> | literally all bets are off ever |
2022-02-08 23:04:34 +0100 | <Franciman> | EvanR: this is an oversimplification |
2022-02-08 23:04:48 +0100 | <Franciman> | i just said that it's not about purity, but how comfortable it is to write pure functional code |
2022-02-08 23:04:54 +0100 | <EvanR> | haskell is equal to malbolge, or something |
2022-02-08 23:04:57 +0100 | <Franciman> | ok |
2022-02-08 23:05:13 +0100 | <Franciman> | i don't know what i did wrong this time |
2022-02-08 23:05:18 +0100 | <Franciman> | and why you are making fun of me |
2022-02-08 23:05:23 +0100 | <EvanR> | well I found it comfortable to write pure code in javascript, that just isn't enough though |
2022-02-08 23:05:33 +0100 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-08 23:05:39 +0100 | <EvanR> | nothing you interact with agrees to, or could |
2022-02-08 23:05:58 +0100 | <EvanR> | so it's not entirely about the language |
2022-02-08 23:06:26 +0100 | <Franciman> | so you think that me being wrong means i can be made fun of |
2022-02-08 23:06:28 +0100 | <Franciman> | i understand |
2022-02-08 23:06:33 +0100 | <geekosaur> | nobody's making fun of you, Franciman. you're acting like you have a guilty conscience and reacting to things not aimed at you |
2022-02-08 23:06:45 +0100 | <Franciman> | i think EvanR is aiming at me |
2022-02-08 23:06:47 +0100 | <Franciman> | being sarcastic |
2022-02-08 23:07:02 +0100 | <geekosaur> | apparently we're not allowed to talk around you because you might decide we're laughing behind your back, or something |
2022-02-08 23:07:19 +0100 | <safinaskar> | monochrom: you may also like this language: https://www.unisonweb.org/ . it also has particular way of dealing with effects |
2022-02-08 23:07:19 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-08 23:07:41 +0100 | <Franciman> | geekosaur: i mean he was being sarcastic at me |
2022-02-08 23:07:46 +0100 | <Franciman> | not beyond me |
2022-02-08 23:08:39 +0100 | <EvanR> | I'm serious about javascript though |
2022-02-08 23:08:42 +0100 | <Franciman> | tell me how i should behave |
2022-02-08 23:08:44 +0100 | <Franciman> | and i will |
2022-02-08 23:08:48 +0100 | <Franciman> | i want to be part of the community |
2022-02-08 23:08:53 +0100 | <Franciman> | i don't know what else to say |
2022-02-08 23:09:20 +0100 | <geekosaur> | just don't ascribe things to yourself that aren'taimed at you. you've done that pretty much every time you've been in here. |
2022-02-08 23:09:34 +0100 | <Franciman> | EvanR: so you weren't being sarcastic with me? |
2022-02-08 23:10:02 +0100 | <geekosaur> | if it'snot obviously aimed at you, just assume it's not and keep quiet.(if it *is* aimed at you, either someone will step in or you can pop into #haskell-ops; that behavior is not tolerated here) |
2022-02-08 23:10:06 +0100 | <EvanR> | regardless of personal discipline writing your own js, it's like boiling the ocean since no framework exists to respect purity among different developers |
2022-02-08 23:10:15 +0100 | cosimone | (~user@93-47-228-151.ip115.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-02-08 23:10:46 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) (Remote host closed the connection) |
2022-02-08 23:11:01 +0100 | <Franciman> | ok |
2022-02-08 23:11:21 +0100 | <geekosaur> | and you're hosed if some function you thought was [pure turns out not to be, or changes in its next release |
2022-02-08 23:11:31 +0100 | <ProfSimm> | Can I make a type that mimics both a scalar an a list of values where the first item is the scalar, so everyone can see what they expect to see. |
2022-02-08 23:11:37 +0100 | <geekosaur> | which is another thing the type system will catch for you |
2022-02-08 23:12:11 +0100 | <geekosaur> | ProfSimm, no. that's pretty much the antithesis of Haskell types |
2022-02-08 23:12:19 +0100 | <geekosaur> | that's a Perl type |
2022-02-08 23:12:32 +0100 | <ProfSimm> | geekosaur: well is it tho. It's two typeclasses supported by one type |
2022-02-08 23:12:46 +0100 | <monochrom> | Wait, does Perl actually convert a list to its head in scalar contexts? |
2022-02-08 23:12:56 +0100 | <geekosaur> | depends on context |
2022-02-08 23:13:01 +0100 | <monochrom> | Yikes. |
2022-02-08 23:13:09 +0100 | <geekosaur> | and you can look at context and control what happens thereby |
2022-02-08 23:13:13 +0100 | <monochrom> | My recollection is that the scalar is the length of the list... |
2022-02-08 23:13:16 +0100 | <ProfSimm> | Wait so it does that? |
2022-02-08 23:13:19 +0100 | <dolio> | What is the value of the "well actually ..." in response to my explanation to why STM works in Haskell and almost nowhere else? It makes me just not want to offer any explanations at all, because they're not going to be thought about without answering a bunch of language pedantry. |
2022-02-08 23:13:26 +0100 | <geekosaur> | usually a list is converted to its length, but sometimes to the first element or other things |
2022-02-08 23:13:27 +0100 | <ProfSimm> | Oh Perl, yes |
2022-02-08 23:13:41 +0100 | <monochrom> | If Haskell did that, I would leave Haskell. |
2022-02-08 23:13:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-02-08 23:13:49 +0100 | <geekosaur> | and you can always look at wantarray |
2022-02-08 23:14:09 +0100 | <ProfSimm> | I'm thinking more like jQuery. Everything is a list, when you want to work with one item you have a jQuery object with 1 item |
2022-02-08 23:14:10 +0100 | <monochrom> | This is why I am against "unconditionally get more people to adopt Haskell". |
2022-02-08 23:14:17 +0100 | nek0 | (~nek0@nek0.eu) |
2022-02-08 23:14:31 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) (Quit: Client closed) |
2022-02-08 23:14:56 +0100 | <monochrom> | Not to say that "exclusively get same-minded people into Haskell" is healthy either. I know that. |
2022-02-08 23:15:10 +0100 | <Franciman> | lol |
2022-02-08 23:15:38 +0100 | <geekosaur> | I'm fine with comparative language discussion. but first know what the hell you're talking about |
2022-02-08 23:16:01 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-08 23:16:03 +0100 | alp | (~alp@user/alp) |
2022-02-08 23:16:03 +0100 | <ProfSimm> | Well I'm thinking reality is a bit like that. We see just 3D projectsions of an 248 dimensional lattice E8 |
2022-02-08 23:16:17 +0100 | <monochrom> | Uh that's pretty useless, geekosaur. Everyone thinks they know what they're talking about. :) |
2022-02-08 23:16:19 +0100 | <ProfSimm> | If you wanna see 3D you get 3D. If you want to see all 248 dimensions, you might |
2022-02-08 23:18:18 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) |
2022-02-08 23:18:32 +0100 | safinaskar | (~quassel@109.252.91.116) () |
2022-02-08 23:19:29 +0100 | sektor|3 | (~kvirc@94.155.193.66) (Ping timeout: 256 seconds) |
2022-02-08 23:20:51 +0100 | <Franciman> | ok dolio i'll take care |
2022-02-08 23:20:54 +0100 | <Franciman> | thanks for the tip |
2022-02-08 23:21:45 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-08 23:22:26 +0100 | <Franciman> | i was reading the comments under the HVM post on hacker news and a person said: well but you are comparing GHC using a single thread to HVM using parallelism |
2022-02-08 23:22:30 +0100 | <Franciman> | so it's unfair |
2022-02-08 23:22:48 +0100 | <Franciman> | but i think it is VERY fair, because one of the promises of functional languages is to better adapt to multicores, i think |
2022-02-08 23:22:55 +0100 | <Franciman> | so if my runtime can automatically take care of it |
2022-02-08 23:23:03 +0100 | <Franciman> | much better than GHC which requires the user intervention |
2022-02-08 23:23:08 +0100 | <Franciman> | it is a big step forward |
2022-02-08 23:23:25 +0100 | <monochrom> | I would not read Hacker News at all. |
2022-02-08 23:23:32 +0100 | <Franciman> | thanks oracle |
2022-02-08 23:23:50 +0100 | <monochrom> | Indeed, I don't. |
2022-02-08 23:24:33 +0100 | <Franciman> | the idea of automatic parallelism is very intriguing |
2022-02-08 23:24:44 +0100 | <Franciman> | haskell failed to get it, but i don't quite understand why |
2022-02-08 23:25:08 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2022-02-08 23:25:32 +0100 | <Franciman> | i remember somebody mentioning that one could not determine what the correct granularity of parallelism would be |
2022-02-08 23:26:05 +0100 | <Franciman> | but somehow you can still have a form of automation, aided by human annotations |
2022-02-08 23:27:21 +0100 | <ski> | @type Control.Parallel.par |
2022-02-08 23:27:22 +0100 | <lambdabot> | a -> b -> b |
2022-02-08 23:27:55 +0100 | <Franciman> | ski: how does this manage to be pure? |
2022-02-08 23:28:18 +0100 | <ski> | it just adds a spark for a computation |
2022-02-08 23:28:29 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2022-02-08 23:28:37 +0100 | <ski> | @where PCPH |
2022-02-08 23:28:37 +0100 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
2022-02-08 23:28:37 +0100 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
2022-02-08 23:28:42 +0100 | <hololeap> | if it's obvious some operation will work well in parallel, you can basically get automatic parallelism using the parallel package |
2022-02-08 23:28:46 +0100 | <ski> | see above ^ |
2022-02-08 23:29:11 +0100 | <Franciman> | thanks |
2022-02-08 23:29:58 +0100 | <Franciman> | i'd like to learn sml and adapt its semantics to these use cases |
2022-02-08 23:30:09 +0100 | <Franciman> | it feels very much like scheme |
2022-02-08 23:30:12 +0100 | <Franciman> | while haskell is pure bloat |
2022-02-08 23:30:22 +0100 | <Franciman> | for a prototype |
2022-02-08 23:30:23 +0100 | <ski> | SML is neat |
2022-02-08 23:30:32 +0100 | <Franciman> | i could never write an haskell compiler |
2022-02-08 23:30:40 +0100 | <Franciman> | and haskell also lacks formal semantics |
2022-02-08 23:30:45 +0100 | <Franciman> | so i should learn about core, etc |
2022-02-08 23:30:51 +0100 | <dsal> | I doubt any person could write a haskell compiler. |
2022-02-08 23:31:04 +0100 | ski | . o O ( JHC ) |
2022-02-08 23:31:07 +0100 | <Franciman> | agree ski |
2022-02-08 23:31:13 +0100 | <Franciman> | sml is pretty cool |
2022-02-08 23:31:17 +0100 | deadmarshal | (~deadmarsh@95.38.117.237) (Ping timeout: 240 seconds) |
2022-02-08 23:31:18 +0100 | <dolio> | Franciman: Here's my question: how did HVM solve the problem that previous researchers on this ran into? |
2022-02-08 23:31:40 +0100 | <dolio> | I don't see an explanation in the repo. |
2022-02-08 23:31:51 +0100 | <monochrom> | SML and Scheme are both pretty fat languages too. |
2022-02-08 23:32:02 +0100 | wavemode | (~wavemode@2601:241:0:fc90:1186:8dd8:ad8a:69e2) |
2022-02-08 23:32:27 +0100 | <monochrom> | If you think SML is small, you're forgetting its parametrized module system and the eqtype thing. |
2022-02-08 23:32:49 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-02-08 23:32:50 +0100 | <Franciman> | monochrom: is it larger than haskell? |
2022-02-08 23:33:01 +0100 | <monochrom> | If you think Scheme is small, you're forgetting its macro system, or call/cc, or shift/reset, or a plural of them. |
2022-02-08 23:33:08 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-02-08 23:33:10 +0100 | safinaskar | (~safinaska@109.252.91.116) |
2022-02-08 23:33:20 +0100 | <Franciman> | the cool thing of sml, imho, is that it's nicely defined in pieces |
2022-02-08 23:33:22 +0100 | <Franciman> | so you can define subsets |
2022-02-08 23:33:28 +0100 | <Franciman> | like you usually do when twekaing with scheme |
2022-02-08 23:33:30 +0100 | <safinaskar> | wow! Koka has true total functions! https://koka-lang.github.io/koka/doc/book.html |
2022-02-08 23:33:32 +0100 | <dolio> | It has parallel benchmarks, but I don't see any explanation for how it's parallelized. |
2022-02-08 23:33:33 +0100 | <Franciman> | so it's a pretty cool first language to implement |
2022-02-08 23:33:45 +0100 | <Franciman> | dolio: sorry, but i don't know |
2022-02-08 23:33:50 +0100 | <safinaskar> | fun sqr : (int) -> total int // total: mathematical total function |
2022-02-08 23:34:15 +0100 | <dolio> | And the parallelism section in the "HOW.mc" is "[TODO]". |
2022-02-08 23:34:19 +0100 | <Franciman> | :) |
2022-02-08 23:34:19 +0100 | <wavemode> | are ints in koka arbitrary precision? |
2022-02-08 23:34:25 +0100 | <Franciman> | SrPx may know more |
2022-02-08 23:34:28 +0100 | <Franciman> | they are the author |
2022-02-08 23:34:49 +0100 | <safinaskar> | Franciman: "so it's a pretty cool first language to implement" - well, first i would recommend implementing BASIC interpreter. i think it is most simple thing to do |
2022-02-08 23:34:57 +0100 | <Franciman> | dolio: i was asking what the previous issues researches found |
2022-02-08 23:35:01 +0100 | <Franciman> | i don't know about them |
2022-02-08 23:35:03 +0100 | <monochrom> | If you're subsetting then subsetting Haskell is just as easy/difficult. See codeworld. |
2022-02-08 23:35:17 +0100 | <safinaskar> | Franciman: then scheme interpreter. this is harder, because scheme has lambdas. but it is untyped, to there is no messing with type system |
2022-02-08 23:35:25 +0100 | <safinaskar> | Franciman: then you can implement ML |
2022-02-08 23:35:29 +0100 | <dolio> | It's what you mentioned. Parallelism has overhead that isn't always worth it. |
2022-02-08 23:35:44 +0100 | <safinaskar> | personally i implemented scheme interpreter |
2022-02-08 23:35:46 +0100 | <Franciman> | i think HVM has a «dirty trick» |
2022-02-08 23:35:49 +0100 | <safinaskar> | (small) |
2022-02-08 23:35:51 +0100 | <dolio> | You can parallelise `(1 + 2) + (3 + 4)`, but it's faster to just add them all up. |
2022-02-08 23:36:02 +0100 | <Franciman> | they run HVM on specific examples which vastly scale |
2022-02-08 23:36:04 +0100 | safinaskar | (~safinaska@109.252.91.116) () |
2022-02-08 23:36:27 +0100 | <Franciman> | i read from the HOW.md that laziness fails to «commute» with lambdas |
2022-02-08 23:36:34 +0100 | <Franciman> | monochrom: sure sure sure sure |
2022-02-08 23:36:42 +0100 | <Franciman> | haskell is just as easy |
2022-02-08 23:36:46 +0100 | <dolio> | That's a separate issue. |
2022-02-08 23:36:54 +0100 | <Franciman> | i know |
2022-02-08 23:37:00 +0100 | <Franciman> | i'm trying to say that |
2022-02-08 23:37:03 +0100 | <Franciman> | it works so well |
2022-02-08 23:37:05 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2022-02-08 23:37:07 +0100 | <Franciman> | because of that reason |
2022-02-08 23:37:13 +0100 | <Franciman> | probably not because of massive parallelsim |
2022-02-08 23:37:49 +0100 | <Franciman> | monochrom: given that it's just as easy, sml has the advantage of having a formal semantics fully specified and the bare language is pretty small |
2022-02-08 23:37:52 +0100 | <Franciman> | haskell lacks that |
2022-02-08 23:37:55 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-08 23:38:09 +0100 | <Franciman> | so this helps implementing a compiler, imho |
2022-02-08 23:38:14 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-08 23:38:20 +0100 | <monochrom> | I'm done with this moving goalpost. |
2022-02-08 23:38:33 +0100 | <Franciman> | you are the n1 haskell fanperson ^^ |
2022-02-08 23:38:36 +0100 | <Franciman> | it's ok |
2022-02-08 23:38:57 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2022-02-08 23:39:24 +0100 | <Franciman> | my goal is: it's easier to use sml as a framework for implementing a toy functional language that you can reason about carefully |
2022-02-08 23:39:27 +0100 | <Franciman> | rather than haskell |
2022-02-08 23:39:37 +0100 | <Franciman> | it's moving faaaaaaaaast |
2022-02-08 23:39:49 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds) |
2022-02-08 23:40:00 +0100 | <monochrom> | I may agree about the formal semantics part on those days when I'm anal, but this "bare language" is clearly a moving goalpost, maliciously defined so that "bare SML exists but bare Haskell doesn't". |
2022-02-08 23:40:09 +0100 | <Franciman> | monochrom: pardon me |
2022-02-08 23:40:14 +0100 | <Franciman> | but bare sml is defined in the standard (revised) |
2022-02-08 23:43:31 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-02-08 23:43:38 +0100 | mikail | (~mikail@94.3.253.161) |
2022-02-08 23:44:20 +0100 | foul_owl | (~kerry@23.82.194.73) (Ping timeout: 256 seconds) |
2022-02-08 23:44:59 +0100 | lbseale_ | (~ep1ctetus@user/ep1ctetus) |
2022-02-08 23:46:07 +0100 | <Franciman> | this is exactly what i am referring to, when i say that it is easier to split sml in pieces, because they already did so in the standard |
2022-02-08 23:46:17 +0100 | <Franciman> | with precise semantics |
2022-02-08 23:46:40 +0100 | <dsal> | It sort of reads like you're speaking from imagined experience. |
2022-02-08 23:46:41 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-02-08 23:46:41 +0100 | deadmarshal | (~deadmarsh@95.38.116.14) |
2022-02-08 23:48:37 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds) |
2022-02-08 23:50:20 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-02-08 23:50:34 +0100 | vysn | (~vysn@user/vysn) |
2022-02-08 23:50:38 +0100 | <Franciman> | thanks dsal |
2022-02-08 23:51:47 +0100 | <dsal> | i.e., it sounds like you're talking about which one of two things you're not doing would be easier. If you were actually going to do something, I'd expect putting effort into doing it would be more productive than telling other people why it's probably hard to do it using tools they are using. |
2022-02-08 23:52:03 +0100 | <Franciman> | after being told i maliciously define entities, now i also know that i am a delusional person |
2022-02-08 23:52:45 +0100 | <dsal> | Everyone imagines things. That doesn't make us delusional. |
2022-02-08 23:53:01 +0100 | <Franciman> | the quasi-structuralist quote «you only know yourself through others» is now more true than ever |
2022-02-08 23:53:07 +0100 | <Franciman> | is more true than ever* |
2022-02-08 23:53:08 +0100 | <dsal> | There's just no practicality to your argument. You don't seem to actually want to do the things you're imagining. |
2022-02-08 23:53:38 +0100 | <Franciman> | dsal: i am learning the sml standard, and I'm having vastly easier time than learning the haskell language report, which btw isn't really the haskell most people use |
2022-02-08 23:53:48 +0100 | <Franciman> | and i'm going to implement it in zig |
2022-02-08 23:57:14 +0100 | deadmarshal | (~deadmarsh@95.38.116.14) (Ping timeout: 260 seconds) |
2022-02-08 23:59:46 +0100 | emf | (~emf@2620:10d:c090:400::5:c6d7) |
2022-02-08 23:59:52 +0100 | <dsal> | OK. I guess I still don't quite understand what you're arguing here, but that might just be because I'm working and not paying that much attention. I write Haskell code for money, but I don't write Haskell compilers, so I guess I just don't see the issue. |