2024-08-07 00:08:41 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-08-07 00:12:12 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-08-07 00:14:31 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2024-08-07 00:20:24 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Remote host closed the connection) |
2024-08-07 00:20:29 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-07 00:22:49 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 00:45:27 +0200 | <haskellbridge> | <Jade> is this not a valid instance for `Monad (Lift f)`? |
2024-08-07 00:45:27 +0200 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/iXGiGCXhRYGAiRsbtVFzeGfT (3 lines) |
2024-08-07 01:03:31 +0200 | <ncf> | it is lawful i'm pretty sure |
2024-08-07 01:03:57 +0200 | <ncf> | i was considering something like this as a categorification of Semigroup m => Monoid (Maybe m) at some point |
2024-08-07 01:04:50 +0200 | <ncf> | (just like Maybe a = a + 1, Lift f = f + 1 where 1 is the identity functor) |
2024-08-07 01:05:39 +0200 | <ncf> | you'd think that you'd only need the functor equivalent of Semigroup (which is Bind), but this is actually not enough because general monads don't commute with coproducts |
2024-08-07 01:06:20 +0200 | <ncf> | so you need something like a generalised join : f (a + f a) → f a, or just give up and ask for Monad f |
2024-08-07 01:06:24 +0200 | mpb | (~mpb@bras-base-otwaon230qw-grc-24-174-89-68-120.dsl.bell.ca) (Quit: Lost terminal) |
2024-08-07 01:18:16 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Remote host closed the connection) |
2024-08-07 01:19:31 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 01:23:36 +0200 | tabaqui | (~root@87.200.123.114) (Ping timeout: 252 seconds) |
2024-08-07 01:28:57 +0200 | halloy5409 | (~halloy540@147.235.212.157) |
2024-08-07 01:31:56 +0200 | darkstardevx | (~darkstard@50.53.3.2) (Quit: Leaving) |
2024-08-07 01:32:44 +0200 | <halloy5409> | @t foldr |
2024-08-07 01:32:44 +0200 | <lambdabot> | Maybe you meant: tell thank you thanks thesaurus thx tic-tac-toe ticker time todo todo-add todo-delete type v @ ? . |
2024-08-07 01:33:45 +0200 | <halloy5409> | @type map |
2024-08-07 01:33:46 +0200 | <lambdabot> | (a -> b) -> [a] -> [b] |
2024-08-07 01:34:24 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb628054de8284f67264.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2024-08-07 01:34:52 +0200 | <halloy5409> | > foldr (\x xs -> xs ++ [x]) [] [1,2,3,4,5] |
2024-08-07 01:34:53 +0200 | <lambdabot> | [5,4,3,2,1] |
2024-08-07 01:35:25 +0200 | <halloy5409> | @list |
2024-08-07 01:35:25 +0200 | <lambdabot> | What module? Try @listmodules for some ideas. |
2024-08-07 01:35:35 +0200 | <halloy5409> | @list,odules |
2024-08-07 01:35:35 +0200 | <lambdabot> | activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search |
2024-08-07 01:35:35 +0200 | <lambdabot> | seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where |
2024-08-07 01:35:44 +0200 | <halloy5409> | @help |
2024-08-07 01:35:44 +0200 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
2024-08-07 01:35:51 +0200 | <halloy5409> | @help foldr |
2024-08-07 01:35:51 +0200 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
2024-08-07 01:36:17 +0200 | <halloy5409> | @listmodules |
2024-08-07 01:36:17 +0200 | <lambdabot> | activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search |
2024-08-07 01:36:17 +0200 | <lambdabot> | seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where |
2024-08-07 01:36:28 +0200 | <halloy5409> | > foldr |
2024-08-07 01:36:30 +0200 | <lambdabot> | error: |
2024-08-07 01:36:30 +0200 | <lambdabot> | • No instance for (Typeable a0) |
2024-08-07 01:36:30 +0200 | <lambdabot> | arising from a use of ‘show_M77240290220706789158’ |
2024-08-07 01:36:42 +0200 | <halloy5409> | ? |
2024-08-07 01:36:48 +0200 | <halloy5409> | ?help |
2024-08-07 01:36:48 +0200 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
2024-08-07 01:36:53 +0200 | <halloy5409> | help foldr |
2024-08-07 01:38:40 +0200 | <halloy5409> | > can someone please tell me how can i tell lambdabot to give me all the srtuct of the execution of foldr? not the result itself, but all the struct with the paren's |
2024-08-07 01:38:41 +0200 | <lambdabot> | <hint>:1:79: error: parse error on input ‘of’ |
2024-08-07 01:38:51 +0200 | <halloy5409> | can someone please tell me how can i tell lambdabot to give me all the srtuct of the execution of foldr? not the result itself, but all the struct with the paren's |
2024-08-07 01:40:08 +0200 | <halloy5409> | > foldr (+) 0 [1,2,3,4] |
2024-08-07 01:40:10 +0200 | <lambdabot> | 10 |
2024-08-07 01:40:30 +0200 | <geekosaur> | > foldr f z [a,b,c] |
2024-08-07 01:40:31 +0200 | <lambdabot> | f a (f b (f c z)) |
2024-08-07 01:40:42 +0200 | <geekosaur> | courtesy of debug-reflect |
2024-08-07 01:41:24 +0200 | <geekosaur> | er, simple-reflect |
2024-08-07 01:42:12 +0200 | <halloy5409> | @geekosaur thanks. can i get it in specific function also? for example how do i get the same result with: foldr (+) 0 [1,1,3] |
2024-08-07 01:42:12 +0200 | <lambdabot> | Unknown command, try @list |
2024-08-07 01:42:30 +0200 | <halloy5409> | geekosaur thanks. can i get it in specific function also? for example how do i get the same result with: foldr (+) 0 [1,1,3] |
2024-08-07 01:43:23 +0200 | <halloy5409> | if i use specific function i get the result itself |
2024-08-07 01:44:20 +0200 | halloy5409 | menash |
2024-08-07 01:44:43 +0200 | <menash> | > foldr (+) 0 [1,2,3,4] |
2024-08-07 01:44:44 +0200 | <lambdabot> | 10 |
2024-08-07 01:44:57 +0200 | <geekosaur> | lambdabot doesn't do that. I think there's a website that does? |
2024-08-07 01:45:36 +0200 | <menash> | i dont know. i would be happy to get a link to this website :-) |
2024-08-07 01:46:43 +0200 | <menash> | > foldr f [] [1,2,3,4 where f = |
2024-08-07 01:46:45 +0200 | <lambdabot> | <hint>:1:21: error: parse error on input ‘where’ |
2024-08-07 01:47:07 +0200 | <menash> | > foldr f [] [1,2,3,4 where f x xs = xs ++ [x] |
2024-08-07 01:47:08 +0200 | <lambdabot> | <hint>:1:21: error: parse error on input ‘where’ |
2024-08-07 01:48:11 +0200 | <menash> | > f x xs = xs ++ [x] |
2024-08-07 01:48:13 +0200 | <lambdabot> | <hint>:1:8: error: parse error on input ‘=’ |
2024-08-07 01:48:37 +0200 | <geekosaur> | tried to find it, not succeeding. may have gone away years ago |
2024-08-07 01:49:46 +0200 | <menash> | geekosaur thanks for the help :-) |
2024-08-07 01:50:00 +0200 | <jackdk> | https://pbv.github.io/haskelite/site/index.html is the closest I'm aware of |
2024-08-07 01:50:46 +0200 | <geekosaur> | no, years ago there was a site that specifically traced foldl and foldr |
2024-08-07 01:51:31 +0200 | <jackdk> | Ah, well https://pbv.github.io/haskelite/site/folds.html shows `foldl`,`foldr`, and `foldl'` at least |
2024-08-07 01:51:45 +0200 | <geekosaur> | menash, "> " is an expression evaluator, you can use let-in or you can use @let to add a global definition (which will go away when someone does @undef) |
2024-08-07 01:53:19 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2024-08-07 01:53:23 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-08-07 01:55:44 +0200 | <menash> | this site is great. thank jackdk |
2024-08-07 01:57:36 +0200 | <menash> | @let f x xs = xs ++ [x] |
2024-08-07 01:57:37 +0200 | <lambdabot> | Defined. |
2024-08-07 01:57:52 +0200 | <menash> | foldr f [] [1,2,3,4] |
2024-08-07 01:58:11 +0200 | <menash> | > foldr f [] [1,2,3,4] |
2024-08-07 01:58:12 +0200 | <lambdabot> | error: |
2024-08-07 01:58:13 +0200 | <lambdabot> | Ambiguous occurrence ‘f’ |
2024-08-07 01:58:13 +0200 | <lambdabot> | It could refer to |
2024-08-07 01:58:38 +0200 | Luj9 | (~Luj@2a01:e0a:de4:a0e1:be24:11ff:febc:b5b5) (Quit: Ping timeout (120 seconds)) |
2024-08-07 01:58:58 +0200 | Luj9 | (~Luj@2a01:e0a:de4:a0e1:be24:11ff:febc:b5b5) |
2024-08-07 01:59:26 +0200 | <menash> | geekosaur i did @let f x xs = xs ++ [x] and then when i'm using f with foldr, i get error (ambiguous occurrence 'f') |
2024-08-07 02:00:08 +0200 | <menash> | (the definition is good. i get Defined in response of the @let expression) |
2024-08-07 02:00:40 +0200 | <menash> | @let z x xs = xs ++ [x] |
2024-08-07 02:00:42 +0200 | <lambdabot> | Defined. |
2024-08-07 02:00:42 +0200 | <jackdk> | menash: Can you put the entire source file you're working with into a pastebin or play.haskell.org? |
2024-08-07 02:00:47 +0200 | <jackdk> | @where paste |
2024-08-07 02:00:47 +0200 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2024-08-07 02:01:10 +0200 | <menash> | > foldr z [] [1,2,3,4] |
2024-08-07 02:01:11 +0200 | <lambdabot> | error: |
2024-08-07 02:01:11 +0200 | <lambdabot> | Ambiguous occurrence ‘z’ |
2024-08-07 02:01:11 +0200 | <lambdabot> | It could refer to |
2024-08-07 02:01:19 +0200 | <jackdk> | Or is this lambdabot-specific? |
2024-08-07 02:01:40 +0200 | <geekosaur> | Yes, it's colliding with the one from simple-reflect |
2024-08-07 02:02:15 +0200 | <geekosaur> | All one-letter names are taken |
2024-08-07 02:02:33 +0200 | <menash> | lambdabot specific. i want him to help me see what is going on with reverse a list using foldr with te function: f x xs = xs ++ [x] |
2024-08-07 02:03:36 +0200 | EvanR | (~EvanR@user/evanr) (Ping timeout: 276 seconds) |
2024-08-07 02:04:21 +0200 | <geekosaur> | :t f |
2024-08-07 02:04:22 +0200 | <lambdabot> | error: |
2024-08-07 02:04:22 +0200 | <lambdabot> | Ambiguous occurrence ‘f’ |
2024-08-07 02:04:22 +0200 | <lambdabot> | It could refer to |
2024-08-07 02:04:33 +0200 | <geekosaur> | Welp |
2024-08-07 02:04:46 +0200 | <geekosaur> | @undefine |
2024-08-07 02:04:46 +0200 | <lambdabot> | Undefined. |
2024-08-07 02:04:53 +0200 | <geekosaur> | :t f |
2024-08-07 02:04:54 +0200 | <lambdabot> | FromExpr a => a |
2024-08-07 02:05:35 +0200 | <geekosaur> | That's so it can pretend to be a function |
2024-08-07 02:06:37 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-08-07 02:09:13 +0200 | <menash> | @let f = (\x xs -> xs ++[x]) |
2024-08-07 02:09:14 +0200 | <lambdabot> | Defined. |
2024-08-07 02:09:22 +0200 | <geekosaur> | it'll collide again |
2024-08-07 02:09:33 +0200 | <menash> | > foldr f [] [1,2,3,4] |
2024-08-07 02:09:34 +0200 | <lambdabot> | error: |
2024-08-07 02:09:35 +0200 | <lambdabot> | Ambiguous occurrence ‘f’ |
2024-08-07 02:09:35 +0200 | <lambdabot> | It could refer to |
2024-08-07 02:09:39 +0200 | <geekosaur> | you can't override simple-reflect |
2024-08-07 02:10:02 +0200 | <menash> | i don't know what is simple-reflect. i'm very newb. |
2024-08-07 02:10:16 +0200 | <geekosaur> | @hackage simple-reflect |
2024-08-07 02:10:17 +0200 | <lambdabot> | https://hackage.haskell.org/package/simple-reflect |
2024-08-07 02:11:20 +0200 | <menash> | geekosaur: can i cabal install simple-reflect and then get what i want in ghci? |
2024-08-07 02:11:39 +0200 | <menash> | or it is not so simple? |
2024-08-07 02:12:02 +0200 | <geekosaur> | no, because you can't replace its f with something concrete |
2024-08-07 02:12:10 +0200 | <geekosaur> | @undef |
2024-08-07 02:12:11 +0200 | <lambdabot> | Undefined. |
2024-08-07 02:12:37 +0200 | <geekosaur> | > foldr (\x xs -> xs ++ x) [1,2,3,4] :: [Expr] |
2024-08-07 02:12:38 +0200 | <lambdabot> | error: |
2024-08-07 02:12:38 +0200 | <lambdabot> | • Couldn't match expected type ‘[Expr]’ |
2024-08-07 02:12:38 +0200 | <lambdabot> | with actual type ‘t0 [a0] -> [a0]’ |
2024-08-07 02:12:46 +0200 | <geekosaur> | I didn't think that would work |
2024-08-07 02:12:53 +0200 | <geekosaur> | I think simple-reflect is too dumb for that |
2024-08-07 02:13:11 +0200 | <geekosaur> | > foldr (\x xs -> xs ++ x) 0 [1,2,3,4] :: [Expr] |
2024-08-07 02:13:13 +0200 | <lambdabot> | error: |
2024-08-07 02:13:13 +0200 | <lambdabot> | • No instance for (Num [Expr]) arising from the literal ‘0’ |
2024-08-07 02:13:13 +0200 | <lambdabot> | • In the second argument of ‘foldr’, namely ‘0’ |
2024-08-07 02:13:23 +0200 | <menash> | the x should be with [x] i think |
2024-08-07 02:13:29 +0200 | Inst | (~Inst@user/Inst) |
2024-08-07 02:13:40 +0200 | <geekosaur> | > foldr (\x xs -> xs ++ x) 0 [1,2,3,4] :: Expr |
2024-08-07 02:13:41 +0200 | <lambdabot> | error: |
2024-08-07 02:13:41 +0200 | <lambdabot> | • Couldn't match expected type ‘Expr’ with actual type ‘[a0]’ |
2024-08-07 02:13:41 +0200 | <lambdabot> | • In the expression: |
2024-08-07 02:13:46 +0200 | <geekosaur> | nope |
2024-08-07 02:13:53 +0200 | <menash> | i mean: |
2024-08-07 02:14:00 +0200 | <geekosaur> | Expr doesn't work with Num, among other things |
2024-08-07 02:14:20 +0200 | <menash> | foldr (\x xs -> xs ++ [x]) [] [1,2,3,4] |
2024-08-07 02:14:26 +0200 | <menash> | > foldr (\x xs -> xs ++ [x]) [] [1,2,3,4] |
2024-08-07 02:14:28 +0200 | <lambdabot> | [4,3,2,1] |
2024-08-07 02:14:35 +0200 | <geekosaur> | but in any case, simple-reflect is not a general execution tracer, it uses type trickery that can handle very simple cases but nothing else |
2024-08-07 02:14:59 +0200 | <geekosaur> | > scanr (\x xs -> xs ++ [x]) [] [1,2,3,4] |
2024-08-07 02:15:00 +0200 | <lambdabot> | [[4,3,2,1],[4,3,2],[4,3],[4],[]] |
2024-08-07 02:15:29 +0200 | <geekosaur> | doesn't show a trace btu does show intermediate results |
2024-08-07 02:17:29 +0200 | <menash> | > foldr f a [1,2,3] |
2024-08-07 02:17:31 +0200 | <lambdabot> | f 1 (f 2 (f 3 a)) |
2024-08-07 02:17:54 +0200 | <menash> | can i make it infix? |
2024-08-07 02:18:00 +0200 | <menash> | the function |
2024-08-07 02:18:24 +0200 | <geekosaur> | no, that requires rewriting the Show instance in simple-reflect, I think |
2024-08-07 02:18:42 +0200 | <geekosaur> | or using a symbol? |
2024-08-07 02:18:56 +0200 | <geekosaur> | > foldr (*) a [1,2,3] |
2024-08-07 02:18:57 +0200 | <lambdabot> | 1 * (2 * (3 * a)) |
2024-08-07 02:19:57 +0200 | <menash> | foldr (\x xs -> xs ++ [x]) a [1,2,3,4] |
2024-08-07 02:20:01 +0200 | <menash> | > foldr (\x xs -> xs ++ [x]) a [1,2,3,4] |
2024-08-07 02:20:02 +0200 | <lambdabot> | error: |
2024-08-07 02:20:02 +0200 | <lambdabot> | • Couldn't match expected type ‘[a]’ with actual type ‘Expr’ |
2024-08-07 02:20:02 +0200 | <lambdabot> | • In the second argument of ‘foldr’, namely ‘a’ |
2024-08-07 02:20:19 +0200 | <menash> | why in your example it is working? |
2024-08-07 02:27:28 +0200 | <geekosaur> | did you look at the type of foldr? |
2024-08-07 02:27:33 +0200 | <geekosaur> | :t foldr |
2024-08-07 02:27:34 +0200 | <lambdabot> | Foldable t => (a -> b -> b) -> b -> t a -> b |
2024-08-07 02:30:48 +0200 | <geekosaur> | also, if I fix that, simple-reflect doesn't have anything to work on so it just gives the simple result |
2024-08-07 02:31:21 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-08-07 02:31:49 +0200 | <geekosaur> | you're probably best off using https://pbv.github.io/haskelite/site/index.htmllike jackdk suggested |
2024-08-07 02:31:59 +0200 | <geekosaur> | simple-reflect is too simple to do what you want |
2024-08-07 02:33:47 +0200 | <menash> | yes that is what i using now and i think i get a sort of breakthrough with my understnaing what is happening. |
2024-08-07 02:34:08 +0200 | <menash> | sorry for the mistakes in my writing :) |
2024-08-07 02:34:17 +0200 | EvanR | (~EvanR@user/evanr) |
2024-08-07 02:37:30 +0200 | <menash> | geekosaur: thank for the help and have a great day/evening/night :-) |
2024-08-07 02:38:39 +0200 | menash | (~halloy540@147.235.212.157) (Quit: menash) |
2024-08-07 02:43:54 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) (Ping timeout: 276 seconds) |
2024-08-07 02:45:25 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-07 02:47:16 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Quit: skyesoss) |
2024-08-07 02:49:40 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) |
2024-08-07 02:55:56 +0200 | g00gler | (uid125351@id-125351.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-07 03:02:13 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal) |
2024-08-07 03:02:53 +0200 | pointlessslippe1 | (~pointless@212.82.82.3) (Ping timeout: 245 seconds) |
2024-08-07 03:03:53 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-08-07 03:08:01 +0200 | pointlessslippe1 | (~pointless@212.82.82.3) |
2024-08-07 03:09:30 +0200 | ZharMeny | (~user@user/ZharMeny) (Quit: M-x meow) |
2024-08-07 03:10:46 +0200 | slack1256 | (~slack1256@2803:c600:5111:80cb:a1ed:c7bd:aa66:b480) |
2024-08-07 03:17:22 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
2024-08-07 03:21:27 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-08-07 03:22:06 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-08-07 03:30:25 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2024-08-07 03:30:49 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 03:36:44 +0200 | zzz | (~z@user/zero) (Ping timeout: 260 seconds) |
2024-08-07 03:38:55 +0200 | zero | (~z@user/zero) |
2024-08-07 03:39:53 +0200 | <probie> | I wonder how much more terse the syntax of Haskell could be. There's not really much room for "improvement" is there? |
2024-08-07 03:41:11 +0200 | migas977 | (~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io) |
2024-08-07 03:42:29 +0200 | <geekosaur> | not if you want to keep readability. you could probably exolang it (APL it?) with appropriate unicode character "keywords" |
2024-08-07 03:43:08 +0200 | <geekosaur> | but you can't do much with e.g. let without losing things like pattern bindings |
2024-08-07 03:44:39 +0200 | <probie> | "keep readability" was not one of my concerns |
2024-08-07 03:48:00 +0200 | <probie> | I've been attempting to navigate the source of https://codeberg.org/ngn/k since yesterday. It claims to be C, but I have my doubts (start at `a.h` if you're willing to give up your sanity). |
2024-08-07 03:50:02 +0200 | <geekosaur> | IOCCC lives! |
2024-08-07 03:51:32 +0200 | <probie> | Except this wasn't written for that. This is just what the author thought the best code style was |
2024-08-07 03:51:34 +0200 | <geekosaur> | also I'm reminded of the original Bourne shell source (written in a bizarre "dialect" of Algol 60 implemented as cpp macros) |
2024-08-07 03:52:54 +0200 | <probie> | as in `#define BEGIN {` shenanigans? |
2024-08-07 03:53:11 +0200 | <geekosaur> | yes only more so |
2024-08-07 03:53:35 +0200 | <geekosaur> | (similarly I suspect that source is trying to write in as close to K as cpp can make C) |
2024-08-07 03:54:01 +0200 | <geekosaur> | for some reason it feels more like Mumps |
2024-08-07 03:54:25 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) |
2024-08-07 03:59:57 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) (Ping timeout: 276 seconds) |
2024-08-07 04:01:59 +0200 | <probie> | The style was pioneered by Arthur Whitney who at age 11 suffered permanent brain damage when Ken Iverson taught him APL. For an example of Arthur's code, here's a 1 page "proof of concept" interpreter for J https://code.jsoftware.com/wiki/Essays/Incunabulum, which Roger Hui then fleshed out. |
2024-08-07 04:04:11 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-07 04:16:16 +0200 | xff0x | (~xff0x@2405:6580:b080:900:7bc4:5f07:443b:cdc) (Ping timeout: 272 seconds) |
2024-08-07 04:18:09 +0200 | <jackdk> | Only problem I see is the use of `gets()` |
2024-08-07 04:23:06 +0200 | <geekosaur> | nobody cared in 1989 |
2024-08-07 04:31:20 +0200 | td_ | (~td@i53870936.versanet.de) (Ping timeout: 252 seconds) |
2024-08-07 04:33:21 +0200 | td_ | (~td@i5387090B.versanet.de) |
2024-08-07 04:48:15 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-07 04:57:13 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 04:59:52 +0200 | terrorjack | (~terrorjac@static.163.82.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
2024-08-07 05:03:07 +0200 | terrorjack | (~terrorjac@static.163.82.63.178.clients.your-server.de) |
2024-08-07 05:04:47 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2024-08-07 05:05:13 +0200 | aforemny | (~aforemny@2001:9e8:6cc6:2f00:b85e:457c:6740:c35) |
2024-08-07 05:05:36 +0200 | <jackdk> | I'm being silly — big page of ... idiosyncratic CPP use? Nah, the only problem is the single use of `gets()` at the bottom. |
2024-08-07 05:06:15 +0200 | aforemny_ | (~aforemny@2001:9e8:6ce5:9e00:3eae:bcb7:91ff:d64b) (Ping timeout: 276 seconds) |
2024-08-07 05:10:11 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2024-08-07 05:10:48 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-08-07 05:11:15 +0200 | <Axman6> | You should see the Python I've been writing in C, it's pretty much all CPP |
2024-08-07 05:20:13 +0200 | <Axman6> | probie: once that code's formatted, it's not too bad (i'm sure you wrote worse at uni =) ) |
2024-08-07 05:48:43 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 245 seconds) |
2024-08-07 05:50:24 +0200 | down200 | (~down200@shell.lug.mtu.edu) (Quit: ZNC - https://znc.in) |
2024-08-07 05:51:54 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 272 seconds) |
2024-08-07 05:52:28 +0200 | Inst | (~Inst@user/Inst) (Ping timeout: 245 seconds) |
2024-08-07 05:53:47 +0200 | down200 | (~down200@shell.lug.mtu.edu) |
2024-08-07 06:08:11 +0200 | Inst | (~Inst@user/Inst) |
2024-08-07 06:12:43 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-07 06:16:28 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 06:25:51 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
2024-08-07 06:26:07 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 06:29:22 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2024-08-07 06:32:19 +0200 | mulk | (~mulk@p5b112b2e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-08-07 06:34:30 +0200 | mulk | (~mulk@p5b112b2e.dip0.t-ipconnect.de) |
2024-08-07 06:36:36 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2024-08-07 06:44:52 +0200 | rosco | (~rosco@175.136.158.234) |
2024-08-07 07:00:55 +0200 | madhavanmiui | (~madhavanm@2409:40f4:8:6451:8000::) |
2024-08-07 07:00:55 +0200 | madhavanmiui | (~madhavanm@2409:40f4:8:6451:8000::) (Client Quit) |
2024-08-07 07:02:38 +0200 | michalz | (~michalz@185.246.207.217) |
2024-08-07 07:11:40 +0200 | dsrt^ | (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-08-07 07:23:49 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 07:30:05 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-08-07 07:36:07 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-08-07 07:37:11 +0200 | euleritian | (~euleritia@dynamic-176-006-134-130.176.6.pool.telefonica.de) |
2024-08-07 07:37:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 07:43:14 +0200 | euleritian | (~euleritia@dynamic-176-006-134-130.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-07 07:43:31 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 07:48:18 +0200 | tabaqui | (~root@87.200.123.114) |
2024-08-07 07:54:44 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: on the move) |
2024-08-07 07:56:16 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Quit: leaving) |
2024-08-07 07:56:34 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2024-08-07 07:58:29 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 08:11:54 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-08-07 08:17:35 +0200 | <Inst> | probie: haskell's tersity is limited by types and purity |
2024-08-07 08:21:29 +0200 | CiaoSen | (~Jura@2a05:5800:242:cd00:e6b9:7aff:fe80:3d03) |
2024-08-07 08:25:28 +0200 | <Inst> | i suppose you could replace >>=, *>, <$>, and <*> wth some shorter operators, though, and make it idiomatic to avoid spacing in their use, but that sort of turns into APL quite quickly |
2024-08-07 08:25:47 +0200 | <jackdk> | probie: https://raw.githubusercontent.com/mxswd/flip-plus/master/Control/FlipPlus.hs |
2024-08-07 08:28:06 +0200 | <Inst> | it also makes me wonder how people would have done monads if it was built into the language instead of being a later bolt-on |
2024-08-07 08:28:37 +0200 | <davean> | You mean syntactically? |
2024-08-07 08:28:41 +0200 | <Inst> | yeah |
2024-08-07 08:29:43 +0200 | <davean> | Lets be thankful they didn't, they'd have named the opperator ::: |
2024-08-07 08:30:41 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 248 seconds) |
2024-08-07 08:31:19 +0200 | <Inst> | that's in the moggi paper? |
2024-08-07 08:31:48 +0200 | <davean> | No, but if they think something is important in Haskell they name it based on : and the more you use it, the more :s they use. |
2024-08-07 08:32:28 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
2024-08-07 08:33:18 +0200 | euleritian | (~euleritia@dynamic-176-006-134-130.176.6.pool.telefonica.de) |
2024-08-07 08:40:52 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-08-07 08:46:58 +0200 | ticat | (~ticat@156.251.248.134) |
2024-08-07 08:48:52 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 08:56:03 +0200 | Square | (~Square@user/square) |
2024-08-07 08:58:13 +0200 | euleritian | (~euleritia@dynamic-176-006-134-130.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-07 08:58:32 +0200 | euleritian | (~euleritia@77.22.252.56) |
2024-08-07 09:00:41 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) |
2024-08-07 09:00:56 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-07 09:01:13 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-08-07 09:01:43 +0200 | fun-safe-math | (~fun-safe-@24.21.106.247) |
2024-08-07 09:03:44 +0200 | <jackdk> | Lens question: ignoring questions of lawfulness, is there a standard combinator that combines two `Fold s a`, yielding a `Fold s a` that works over both? |
2024-08-07 09:04:32 +0200 | <c_wraith> | if you're using it solely as a fold, <> |
2024-08-07 09:04:32 +0200 | <Axman6> | does <> work? |
2024-08-07 09:04:44 +0200 | <c_wraith> | when you start to use it as a traversal, it breaks badly |
2024-08-07 09:04:52 +0200 | <jackdk> | whaaat, that's crazy |
2024-08-07 09:05:02 +0200 | <Axman6> | > (Nothing, 2) .~ (_Just <> _2) |
2024-08-07 09:05:04 +0200 | <lambdabot> | error: |
2024-08-07 09:05:04 +0200 | <lambdabot> | • Couldn't match type ‘(Maybe a0, b0)’ |
2024-08-07 09:05:04 +0200 | <lambdabot> | with ‘(a1 -> Identity ((a2 -> f0 b1) -> Maybe a2 -> f0 ... |
2024-08-07 09:05:11 +0200 | <Axman6> | > (Nothing, 2) ..~ (_Just <> _2) |
2024-08-07 09:05:12 +0200 | <lambdabot> | error: |
2024-08-07 09:05:12 +0200 | <lambdabot> | • Variable not in scope: |
2024-08-07 09:05:12 +0200 | <lambdabot> | (..~) |
2024-08-07 09:05:23 +0200 | <Axman6> | bleh, I can't remember my lens operators! |
2024-08-07 09:05:33 +0200 | <danse-nr3> | "ignoring questions of lawfulness" ... "whaaat, that's crazy" |
2024-08-07 09:05:34 +0200 | <jackdk> | You've been away too long |
2024-08-07 09:06:01 +0200 | <jackdk> | I couldn't reason through from the type alias for `Fold` to see that it would have a `Semigroup` instance |
2024-08-07 09:06:15 +0200 | <Axman6> | You should see the lens stuff I was writing last night, using all the crazy operators (<~ is so handy) but I've forgotten the basics! |
2024-08-07 09:06:54 +0200 | <haskellbridge> | <magic_rb> Can we see the lens stuff? I do like me some lenses |
2024-08-07 09:07:29 +0200 | <Axman6> | > (Nothing, 2) ^? (_Just <> _2) |
2024-08-07 09:07:31 +0200 | <lambdabot> | error: |
2024-08-07 09:07:31 +0200 | <lambdabot> | • Couldn't match type ‘Maybe a’ with ‘(Maybe a0, b0)’ |
2024-08-07 09:07:31 +0200 | <lambdabot> | Expected type: Getting (First a) (Maybe a0, b0) a |
2024-08-07 09:08:06 +0200 | rosco | (~rosco@175.136.158.234) |
2024-08-07 09:08:07 +0200 | <Axman6> | I dunno what I'm doing any more |
2024-08-07 09:08:16 +0200 | <haskellbridge> | <magic_rb> 😆 |
2024-08-07 09:08:21 +0200 | <c_wraith> | > [1..10] ^.. (traverse . filtered odd <> traverse . filtered even) |
2024-08-07 09:08:23 +0200 | <lambdabot> | [1,3,5,7,9,2,4,6,8,10] |
2024-08-07 09:08:33 +0200 | <Axman6> | > (Nothing, 2) ^? (_1 . _Just <> _2) |
2024-08-07 09:08:34 +0200 | <lambdabot> | Just 2 |
2024-08-07 09:08:42 +0200 | <Axman6> | > (Just 3, 2) ^? (_1 . _Just <> _2) |
2024-08-07 09:08:43 +0200 | <lambdabot> | Just 3 |
2024-08-07 09:09:15 +0200 | <Axman6> | c_wraith: that feels like the basis for an FFT implementation |
2024-08-07 09:12:18 +0200 | <jackdk> | Axman6: how about the FlipPlus Fourier Transform? |
2024-08-07 09:12:32 +0200 | berberman | (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-08-07 09:12:55 +0200 | <haskellbridge> | <magic_rb> Ive no idea whay im reading, i especially dont get how mappend fits into this |
2024-08-07 09:12:55 +0200 | berberman | (~berberman@user/berberman) |
2024-08-07 09:13:06 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 09:13:26 +0200 | <c_wraith> | it's basically coincidence |
2024-08-07 09:13:35 +0200 | berberman | (~berberman@user/berberman) (Client Quit) |
2024-08-07 09:13:54 +0200 | <haskellbridge> | <magic_rb> Kind if behaves like aplicative or in some cases, <|> |
2024-08-07 09:14:03 +0200 | <haskellbridge> | <magic_rb> From the examples you gave |
2024-08-07 09:14:09 +0200 | <c_wraith> | There was no particular design for <> to work that way with lens, but the existing instances just sort of work. |
2024-08-07 09:14:28 +0200 | berberman | (~berberman@user/berberman) |
2024-08-07 09:14:36 +0200 | <haskellbridge> | <magic_rb> Ah the magic of actually respecting math, things just emerge |
2024-08-07 09:14:47 +0200 | <c_wraith> | well. They work for a Fold |
2024-08-07 09:15:02 +0200 | <c_wraith> | They don't work so much when more structure is expected. |
2024-08-07 09:15:44 +0200 | <Axman6> | % :info Fold |
2024-08-07 09:15:44 +0200 | <yahb2> | <interactive>:1:1: error: Not in scope: ‘Fold’ |
2024-08-07 09:15:53 +0200 | <Axman6> | % :info Control.Lens.Fold |
2024-08-07 09:15:53 +0200 | <yahb2> | <interactive>:1:1: error: Not in scope: ‘Control.Lens.Fold’ |
2024-08-07 09:15:56 +0200 | <Axman6> | :( |
2024-08-07 09:17:29 +0200 | ticat | (~ticat@156.251.248.134) (Quit: Client closed) |
2024-08-07 09:17:45 +0200 | <c_wraith> | IIRC, Fold s t a b is roughly (Applicative f, Contravariant f) => (a -> f b) -> s -> f t ? |
2024-08-07 09:18:16 +0200 | <c_wraith> | Oh, it has fewer type variables. just s and a |
2024-08-07 09:18:21 +0200 | <c_wraith> | But the rest is right |
2024-08-07 09:18:24 +0200 | <Axman6> | yeah |
2024-08-07 09:18:45 +0200 | <Axman6> | the fact semigroupie things work on Folds isn't too surprising |
2024-08-07 09:18:47 +0200 | <c_wraith> | Right, having b and t only makes sense if you can reconstitute the value |
2024-08-07 09:19:30 +0200 | <c_wraith> | And combining Applicative and Contravariant requires f's parameter to be phantom anyway... |
2024-08-07 09:21:45 +0200 | <c_wraith> | So you have things like f ~ Const (Endo [a]) when using (^..). |
2024-08-07 09:25:34 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb848054de8284f67264.dip0.t-ipconnect.de) |
2024-08-07 09:31:45 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 09:37:29 +0200 | YoungFrog | (~youngfrog@2a02:a03f:c9db:fc00:40f:34b2:83e3:2019) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2024-08-07 09:37:48 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2024-08-07 09:42:59 +0200 | Lears | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
2024-08-07 09:43:14 +0200 | Leary | (~Leary@user/Leary/x-0910699) |
2024-08-07 09:50:40 +0200 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 272 seconds) |
2024-08-07 09:56:27 +0200 | someone235 | (uid419897@id-419897.ilkley.irccloud.com) |
2024-08-07 09:59:13 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: on the move) |
2024-08-07 10:01:53 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 10:03:44 +0200 | ft | (~ft@p4fc2aa15.dip0.t-ipconnect.de) (Quit: leaving) |
2024-08-07 10:05:22 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-07 10:11:23 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 10:26:20 +0200 | dans22103 | (~danse-nr3@user/danse-nr3) |
2024-08-07 10:28:45 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds) |
2024-08-07 10:32:45 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 10:44:31 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 264 seconds) |
2024-08-07 10:46:35 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 10:51:12 +0200 | ubert | (~Thunderbi@178.115.47.16.wireless.dyn.drei.com) |
2024-08-07 11:17:50 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 244 seconds) |
2024-08-07 11:18:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2024-08-07 11:18:37 +0200 | gehmehgeh | gmg |
2024-08-07 11:22:58 +0200 | migas977 | (~migas@static.140.65.63.178.clients.your-server.de) |
2024-08-07 11:29:12 +0200 | meritamen | (~user@user/meritamen) |
2024-08-07 11:35:16 +0200 | Tisoxin | (~Ikosit@user/ikosit) (Quit: The Lounge - https://thelounge.chat) |
2024-08-07 11:35:51 +0200 | meritamen | (~user@user/meritamen) (Remote host closed the connection) |
2024-08-07 11:36:02 +0200 | Tisoxin | (~Ikosit@user/ikosit) |
2024-08-07 11:37:46 +0200 | billchenchina- | (~billchenc@103.118.42.229) |
2024-08-07 11:38:51 +0200 | billchenchina- | (~billchenc@103.118.42.229) (Max SendQ exceeded) |
2024-08-07 11:40:20 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) |
2024-08-07 11:40:58 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) (Max SendQ exceeded) |
2024-08-07 11:41:49 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) |
2024-08-07 11:46:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 276 seconds) |
2024-08-07 11:47:45 +0200 | dans22103 | (~danse-nr3@user/danse-nr3) (Remote host closed the connection) |
2024-08-07 11:47:59 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 11:49:15 +0200 | Square | (~Square@user/square) (Ping timeout: 276 seconds) |
2024-08-07 11:51:38 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) (Ping timeout: 272 seconds) |
2024-08-07 11:52:44 +0200 | billchenchina- | (~billchenc@103.118.42.229) |
2024-08-07 11:56:30 +0200 | Guest85 | (~Guest85@78.135.8.93) |
2024-08-07 11:59:36 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-07 12:00:59 +0200 | someone235 | (uid419897@id-419897.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-07 12:01:41 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Client Quit) |
2024-08-07 12:04:41 +0200 | <Guest85> | from https://web.engr.oregonstate.edu/~erwig/pfp/pfp-jun06.tar.gz |
2024-08-07 12:04:41 +0200 | <Guest85> | ```simEval :: Int -> Strategy -> RDist Outcome |
2024-08-07 12:04:42 +0200 | <Guest85> | simEval k s = Dist.map result `fmap` (k ~. game s) start``` |
2024-08-07 12:04:42 +0200 | <Guest85> | how do I read this implementation? `Dist.map` should be the same as `fmap`, afaict, but I can't work out the types, or even precedence, yet. Would it be clearer using `<$>`, which I also can't get to compile? |
2024-08-07 12:04:48 +0200 | <danse-nr3> | @paste |
2024-08-07 12:04:49 +0200 | <lambdabot> | A pastebin: https://paste.debian.net/ |
2024-08-07 12:08:31 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 264 seconds) |
2024-08-07 12:09:24 +0200 | <Guest85> | not sure if this is easier to follow for just 2 lines ... but https://paste.debian.net/1325716/ |
2024-08-07 12:09:46 +0200 | <danse-nr3> | cheers Guest85 |
2024-08-07 12:10:05 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2024-08-07 12:10:49 +0200 | <Guest85> | my pleasure - let me know if I should be pasting more into there, or just let anybody who is interested unzip the file I linked to |
2024-08-07 12:12:01 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 12:12:03 +0200 | <Guest85> | my assumption was that somebody who can read this and understand it probably does not need much more context (from the archive file), but that may be an unsafe assumption |
2024-08-07 12:12:47 +0200 | xff0x | (~xff0x@2405:6580:b080:900:bb9f:ea83:5088:5a06) |
2024-08-07 12:14:32 +0200 | <mauke> | fmap (Dist.map result) ((k ~. game s) start) |
2024-08-07 12:14:55 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-08-07 12:15:18 +0200 | <Guest85> | also, another question - the instructions say just `ghci Dice.hs` and ... But, presumably, because this work/paper is from 2006 and the standard libraries have evolved since then, nothing works with my version of haskell installed. Since there is no cabal file, what is a practical way to get the right version of haskell (eg are there a docker |
2024-08-07 12:15:19 +0200 | <Guest85> | containers for this sort of thing)? |
2024-08-07 12:16:24 +0200 | <Guest85> | mauke - thanks. I got that much, but would you not expect to swap in `<$>` and for the types to still align? |
2024-08-07 12:16:37 +0200 | CiaoSen | (~Jura@2a05:5800:242:cd00:e6b9:7aff:fe80:3d03) (Ping timeout: 252 seconds) |
2024-08-07 12:17:08 +0200 | <Guest85> | the inner `fmap` is OK to swich to `<$>` but the `Dist.map` I could not work out |
2024-08-07 12:18:40 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-07 12:20:17 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-07 12:22:41 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: meal) |
2024-08-07 12:24:29 +0200 | billchenchina- | (~billchenc@103.118.42.229) (Ping timeout: 244 seconds) |
2024-08-07 12:25:39 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) |
2024-08-07 12:26:25 +0200 | <Guest85> | anyway, mauke, I find your version much less ambiguous, so thank you, that already helped. |
2024-08-07 12:32:15 +0200 | billchenchina- | (~billchenc@2408:844f:1526:ffb0:6358:6774:f45c:5120) (Ping timeout: 260 seconds) |
2024-08-07 12:33:36 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-08-07 12:36:45 +0200 | <Leary> | Guest85: Assuming `RDist` and `Outcome` are constructors (not type synonyms) the type of `simEval` implies `Dist.map :: _ -> _ -> Outcome`, which cannot unify with `fmap`. Presumably it maps monomorphically over the contents of `Outcome`. |
2024-08-07 12:38:05 +0200 | Guest85 | (~Guest85@78.135.8.93) (Quit: Ping timeout (120 seconds)) |
2024-08-07 12:44:51 +0200 | alexherbo2 | (~alexherbo@2a02-8440-341b-febc-249e-3732-ad8c-d761.rev.sfr.net) |
2024-08-07 12:45:24 +0200 | Guest85 | (~Guest85@78.135.8.93) |
2024-08-07 12:45:52 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-07 12:49:51 +0200 | <SrPx> | https://www.reddit.com/r/haskell/comments/1em8c9z/can_this_haskell_program_be_optimized/? |
2024-08-07 12:52:26 +0200 | gmg | (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
2024-08-07 12:52:50 +0200 | <Franciman> | hi SrPx |
2024-08-07 12:52:56 +0200 | <SrPx> | hi^^ |
2024-08-07 12:53:01 +0200 | gmg | (~user@user/gehmehgeh) |
2024-08-07 13:01:12 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-07 13:01:37 +0200 | CiaoSen | (~Jura@2a05:5800:242:cd00:e6b9:7aff:fe80:3d03) |
2024-08-07 13:05:34 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-08-07 13:05:52 +0200 | gmg | (~user@user/gehmehgeh) |
2024-08-07 13:09:47 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 13:18:21 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Remote host closed the connection) |
2024-08-07 13:18:47 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 13:25:36 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-07 13:31:03 +0200 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) (Ping timeout: 252 seconds) |
2024-08-07 13:40:05 +0200 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) |
2024-08-07 13:45:05 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-08-07 14:00:17 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 248 seconds) |
2024-08-07 14:00:47 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-08-07 14:07:09 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 14:13:43 +0200 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.9.1+deb1 - https://znc.in) |
2024-08-07 14:15:06 +0200 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) |
2024-08-07 14:15:29 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2024-08-07 14:19:39 +0200 | cheater | (~Username@user/cheater) |
2024-08-07 14:20:03 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-08-07 14:23:26 +0200 | Mateon1 | (~Thunderbi@user/meow/Mateon1) |
2024-08-07 14:26:22 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
2024-08-07 14:26:26 +0200 | dans15093 | (~danse-nr3@user/danse-nr3) |
2024-08-07 14:45:43 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 264 seconds) |
2024-08-07 14:46:19 +0200 | dans15093 | (~danse-nr3@user/danse-nr3) (Remote host closed the connection) |
2024-08-07 14:46:34 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 14:50:15 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-08-07 14:50:42 +0200 | vgtw | (~vgtw@user/vgtw) |
2024-08-07 14:50:53 +0200 | vgtw | (~vgtw@user/vgtw) (Remote host closed the connection) |
2024-08-07 14:51:21 +0200 | vgtw | (~vgtw@user/vgtw) |
2024-08-07 15:01:36 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 265 seconds) |
2024-08-07 15:17:33 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 15:17:56 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) |
2024-08-07 15:20:48 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-08-07 15:21:47 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) |
2024-08-07 15:24:58 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) |
2024-08-07 15:26:26 +0200 | <Mateon1> | Hi, I have a question about the type system and Void. How exactly is the type system sound given you can absolutely pass around values typed Void given Haskell's laziness? You can't exactly construct them, but you can absolutely create thunks of type Void. |
2024-08-07 15:26:26 +0200 | <Mateon1> | Consider: omega = omega; :t omega -- omega :: t -- which you can specialize to Void. You can pass this value around, posing as arbitrary data, even pass it to "absurd", it's just that you can't evaluate the values materialized from it without hanging |
2024-08-07 15:26:37 +0200 | <Mateon1> | Are there any kind of articles, blog posts, or other resources on that topic? |
2024-08-07 15:28:44 +0200 | <SrPx> | is there any commonly used / known lib / algorithm / application / whatever that allows me to write a test of input/output pairs, and will return an Agda/Haskell/whatever function that passes that test? 10:16 AM for example, I write: `solve f in { f(00100011[]) = 1011[]; f(0100010100[]) = f(10111001[]) = 0100[] }` - and it outputs the recursive XOR function: `{ xor (0:0:xs) = 0:xor xs ; xor (0:1:xs) = 1:xor xs ; xor (1:0:xs) = 1:xor |
2024-08-07 15:28:44 +0200 | <SrPx> | xs ; xor (1:1:xs) = 0:xor xs }` |
2024-08-07 15:29:28 +0200 | Guest85 | (~Guest85@78.135.8.93) (Quit: Client closed) |
2024-08-07 15:29:52 +0200 | <danse-nr3> | whew a cluster of queries are we famous already? |
2024-08-07 15:31:20 +0200 | <Mateon1> | SrPx: This is generally called program synthesis, and it's fairly limited in practice. I know of some research projects, not in Haskell, usually some kind of lisp, where this works by filling in holes in programs with certain types of expressions. I don't think what I've seen is generic enough to discover new recursive functions like that, though. You would have to write a proper fold yourself |
2024-08-07 15:32:35 +0200 | <SrPx> | I see, I was wondering if there is some known / go-to option that is generally recognized as the most viable, even though the problem itself is hard |
2024-08-07 15:33:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 15:34:03 +0200 | <Mateon1> | Also pretty sure the example you gave is for xnor, rather than xor |
2024-08-07 15:34:38 +0200 | <SrPx> | oops, fair enough |
2024-08-07 15:36:48 +0200 | <Leary> | SrPx: Some low hanging fruit: -O2; -A256m; `collapse (Mk(O|I) t) = Mk(O|I) <$> collapse t`. |
2024-08-07 15:37:38 +0200 | <Leary> | Also, I don't think those Monad and Applicative instances are compatible. |
2024-08-07 15:38:07 +0200 | <SrPx> | uh you're probably right, I didn't review it / don't use applicative / was forced to write one by GHC haha |
2024-08-07 15:38:25 +0200 | <SrPx> | Leary: did you test that? how much faster it got? you mean to write separate clauses right? |
2024-08-07 15:39:06 +0200 | <danse-nr3> | i'd say soundness comes after evaluation Mateon1. In fact, the system is not consistent because of bottom |
2024-08-07 15:39:37 +0200 | <danse-nr3> | *not sound |
2024-08-07 15:41:14 +0200 | <Leary> | SrPx: The flags made it about twice as fast. Replacing bind/return with fmap in the MkO/MkI cases was a small (maybe 5%) improvement. |
2024-08-07 15:44:13 +0200 | Putonlalla1 | Putonlalla |
2024-08-07 15:46:44 +0200 | <Mateon1> | SrPx: Does this by any chance come from the Victor Taelin tweet? Just came across some of them, using optimal evaluation seems like a promising improvement in program synthesis, one that would absolutely be publishable, but seems that Taelin wants to commercialize this for some reason? I really doubt this scales beyond toy functions |
2024-08-07 15:48:01 +0200 | spew | (~spew@201.141.102.132) |
2024-08-07 15:51:18 +0200 | <SrPx> | I'm Taelin lol |
2024-08-07 15:51:31 +0200 | <danse-nr3> | XD |
2024-08-07 15:51:56 +0200 | <Mateon1> | Oh lol |
2024-08-07 15:52:07 +0200 | <SrPx> | we don't want to commercialize this algorithm directly but yes I do believe we can use it as a component to train an AI that is guaranteed to generate correct code, and that we could commercialize one day (like ChatGPT etc.) |
2024-08-07 15:52:40 +0200 | <Mateon1> | Ah, some of the earlier tweets and the hiding of code was throwing me off |
2024-08-07 15:52:40 +0200 | <SrPx> | even if it only works for small functions, that is still extremely handy in a training loop where we attempt to find small functions that model a given dataset, and add to a loop |
2024-08-07 15:52:52 +0200 | <SrPx> | Mateon1: I need to :( it is a company |
2024-08-07 15:52:54 +0200 | <Mateon1> | I think it's more promising in compression, actually |
2024-08-07 15:53:11 +0200 | <SrPx> | well, some say intelligence is just compression |
2024-08-07 15:53:13 +0200 | <Mateon1> | I would love a PAQ variant with this as a primitive |
2024-08-07 15:53:31 +0200 | <SrPx> | noted!!! |
2024-08-07 15:54:55 +0200 | <kuribas> | Why do you need optimal evaluation for program generation? Couldn't you generate programs with dependent types, and check that? |
2024-08-07 15:55:16 +0200 | <kuribas> | Say, check that all functions are total. |
2024-08-07 15:56:15 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
2024-08-07 15:56:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 16:02:36 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds) |
2024-08-07 16:03:05 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-08-07 16:03:46 +0200 | xstill_ | (xstill@fimu/xstill) (Read error: Connection reset by peer) |
2024-08-07 16:04:43 +0200 | xstill_ | (xstill@fimu/xstill) |
2024-08-07 16:05:59 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) |
2024-08-07 16:09:15 +0200 | sadome | (~sadome@user/sadome) |
2024-08-07 16:09:16 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-08-07 16:10:12 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 252 seconds) |
2024-08-07 16:12:02 +0200 | sadome | (~sadome@user/sadome) |
2024-08-07 16:12:03 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-08-07 16:12:09 +0200 | <Inst> | Reading this, I'm curious if it's possible to make inquiries of a value's type's typeclass membership |
2024-08-07 16:12:11 +0200 | <Inst> | https://discourse.haskell.org/t/the-quest-to-completely-eradicate-string-awkwardness/10111/17 |
2024-08-07 16:13:15 +0200 | <kuribas> | At runtime? |
2024-08-07 16:13:56 +0200 | <Inst> | let's say Text gets moved into base |
2024-08-07 16:14:02 +0200 | <Inst> | and a Pretty typeclass gets added |
2024-08-07 16:14:12 +0200 | <Inst> | how should ghci react, then? |
2024-08-07 16:14:34 +0200 | <kuribas> | well, reload ghci? |
2024-08-07 16:14:45 +0200 | <Inst> | I mean ghci prints the values you compute |
2024-08-07 16:14:58 +0200 | sadome | (~sadome@182.69.176.14) |
2024-08-07 16:14:58 +0200 | sadome | (~sadome@182.69.176.14) (Changing host) |
2024-08-07 16:14:58 +0200 | sadome | (~sadome@user/sadome) |
2024-08-07 16:14:59 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-08-07 16:15:08 +0200 | <Inst> | so now you have a legacy String type as well as a modern Text type |
2024-08-07 16:15:22 +0200 | <kuribas> | react to what exactly? |
2024-08-07 16:15:27 +0200 | <kuribas> | A literal string? |
2024-08-07 16:15:49 +0200 | <Inst> | say, you have a custom tree type, and you derive Pretty |
2024-08-07 16:16:03 +0200 | <Inst> | for whatever reason you don't derive / instance it into Show |
2024-08-07 16:16:41 +0200 | <Inst> | how should ghci display your tree, while also printing types that have a Show instance, but not a Pretty instance? |
2024-08-07 16:16:44 +0200 | spew | (~spew@201.141.102.132) (Read error: Connection reset by peer) |
2024-08-07 16:17:58 +0200 | <EvanR> | this whole line of reasoning would be skipped if ghci had built-in debug view of values without having to derive Show or Pretty or whatever |
2024-08-07 16:17:58 +0200 | sadomei | (~sadomei@182.69.176.14) |
2024-08-07 16:17:59 +0200 | sadomei | (~sadomei@182.69.176.14) (Excess Flood) |
2024-08-07 16:18:14 +0200 | <EvanR> | like some other languages |
2024-08-07 16:18:34 +0200 | <EvanR> | but it would violate avoid success at all costs |
2024-08-07 16:18:41 +0200 | spew | (~spew@201.141.102.132) |
2024-08-07 16:18:45 +0200 | <Inst> | :show bindings |
2024-08-07 16:18:45 +0200 | <Inst> | ? |
2024-08-07 16:19:25 +0200 | <kuribas> | a good debugger for haskell would be great. |
2024-08-07 16:19:32 +0200 | <kuribas> | One that is not modelled after imperative languages. |
2024-08-07 16:19:44 +0200 | <kuribas> | For example, let me choose which part of the tree to evaluate. |
2024-08-07 16:20:02 +0200 | <danse-nr3> | "having to derive"... use generic, here is your builtin |
2024-08-07 16:20:15 +0200 | <EvanR> | no |
2024-08-07 16:20:29 +0200 | <Leary> | Inst: https://downloads.haskell.org/ghc/latest/docs/users_guide/ghci.html#using-a-custom-interactive-pri… |
2024-08-07 16:20:35 +0200 | <EvanR> | deriving Show or deriving Generic is the same barrier |
2024-08-07 16:20:50 +0200 | <kuribas> | EvanR: Show is great, for example I don't want to see the whole structure of a HashMap. |
2024-08-07 16:21:10 +0200 | <Leary> | It should just keep defaulting to Show, and people can change from Show to Pretty if they want to. |
2024-08-07 16:21:21 +0200 | <EvanR> | sure a way to customize the built in behavior would not harm anything |
2024-08-07 16:22:01 +0200 | spew | (~spew@201.141.102.132) (Client Quit) |
2024-08-07 16:23:00 +0200 | <EvanR> | the situation with by default it shows an error message, and you go type or set up IDE autogeneration for deriving Show to see anything, is a "good enough" not a great |
2024-08-07 16:23:29 +0200 | <EvanR> | why is it like that, because it's good enough |
2024-08-07 16:23:41 +0200 | <Leary> | (there's no need for it to try to be too clever; uniform behaviour is better, and you can always use the class methods directly) |
2024-08-07 16:23:48 +0200 | <kuribas> | EvanR: Maybe always deriving Show? |
2024-08-07 16:24:05 +0200 | <kuribas> | If no instance exists. |
2024-08-07 16:24:11 +0200 | <danse-nr3> | how you customize then |
2024-08-07 16:24:15 +0200 | <EvanR> | I don't know if that's a good idea |
2024-08-07 16:24:28 +0200 | <kuribas> | danse-nr3: by explicit deriving. |
2024-08-07 16:24:35 +0200 | <EvanR> | because of type class global coherence stuff |
2024-08-07 16:24:46 +0200 | <danse-nr3> | how would you like your "builtin behaviour" to look like then EvanR? |
2024-08-07 16:24:55 +0200 | <danse-nr3> | (with custom) |
2024-08-07 16:25:05 +0200 | <mauke> | <Inst> how should ghci display your tree, while also printing types that have a Show instance, but not a Pretty instance? <- the same way it deals with IO values now? |
2024-08-07 16:25:24 +0200 | <EvanR> | if there's no Show instance, there's no Show instance so show doesn't work. But ghci still shows something, perhaps whatever deriving Show would have shown |
2024-08-07 16:25:27 +0200 | <Inst> | how does it deal with IO values now? |
2024-08-07 16:25:37 +0200 | <EvanR> | in response to danse-nr3 |
2024-08-07 16:26:16 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 16:26:42 +0200 | <mauke> | brute force |
2024-08-07 16:27:19 +0200 | <Inst> | actually, right now, if I data Foo = Foo, then type pure Foo :: IO Foo, I get no return |
2024-08-07 16:27:49 +0200 | <EvanR> | yeah it treats IO actions magically |
2024-08-07 16:29:58 +0200 | CiaoSen | (~Jura@2a05:5800:242:cd00:e6b9:7aff:fe80:3d03) (Ping timeout: 245 seconds) |
2024-08-07 16:30:21 +0200 | <mauke> | try fmap length getLine |
2024-08-07 16:30:26 +0200 | <Inst> | iirc Haskell has no type unions, you can fake it with a sum type |
2024-08-07 16:30:30 +0200 | <Inst> | there's also no typeclass unions, right? |
2024-08-07 16:30:44 +0200 | <Inst> | which is what I'm really asking |
2024-08-07 16:30:47 +0200 | <kuribas> | EvanR: that would be nice. |
2024-08-07 16:31:07 +0200 | <kuribas> | Better than not show anything. |
2024-08-07 16:32:36 +0200 | <zero> | > 1/0 |
2024-08-07 16:32:37 +0200 | <lambdabot> | Infinity |
2024-08-07 16:34:18 +0200 | <Leary> | There are apparently multiple levels of magic here; ghci prints the result of a `Show a => IO a`, unless `a` is `()` ... but for some reason that also generalises to anything of the form `data T = C`. |
2024-08-07 16:34:30 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-08-07 16:34:54 +0200 | <danse-nr3> | what's with 1/0 zero? |
2024-08-07 16:35:12 +0200 | <zero> | danse-nr3: making a point about Show |
2024-08-07 16:35:17 +0200 | <zero> | :t 1/0 |
2024-08-07 16:35:18 +0200 | <lambdabot> | Fractional a => a |
2024-08-07 16:35:34 +0200 | <EvanR> | :t 1/(0::Double) |
2024-08-07 16:35:35 +0200 | <lambdabot> | Double |
2024-08-07 16:35:44 +0200 | <Leary> | Oh, no, I'm wrong -- it just applies to anything that doesn't have Show, which I forgot to derive. |
2024-08-07 16:35:45 +0200 | <EvanR> | Double has a Show instance already |
2024-08-07 16:36:15 +0200 | <danse-nr3> | oh that's clever zero |
2024-08-07 16:37:03 +0200 | <EvanR> | printing out the result happens after defaulting |
2024-08-07 16:37:17 +0200 | <Inst> | https://stackoverflow.com/questions/7198907/haskell-constraint-is-no-smaller-than-the-instance-head |
2024-08-07 16:37:21 +0200 | <Inst> | yeah that'd be an interesting question |
2024-08-07 16:37:30 +0200 | <Inst> | you could make some crappy overlapping instances with newtypes to hack around the problem |
2024-08-07 16:37:41 +0200 | <EvanR> | :| |
2024-08-07 16:37:52 +0200 | <EvanR> | which problem are you on now? |
2024-08-07 16:38:22 +0200 | <Inst> | the idea of using type unions to get it to attempt both Prelude.print and what essentially amounts to Pretty.print |
2024-08-07 16:39:00 +0200 | <EvanR> | or just take interacting pretty printing out of the type class system |
2024-08-07 16:39:04 +0200 | <EvanR> | interactive |
2024-08-07 16:40:35 +0200 | <Inst> | yeah but you'd also want to use print (implicitly in Trace.Debug) for other debugging purposes beyond ghci |
2024-08-07 16:40:40 +0200 | <SrPx> | kuribas: optimal evaluation isn't needed for program generation. I use it to optimize *searching* through a bazillion generated programs. |
2024-08-07 16:41:02 +0200 | <EvanR> | type classes get treated as a hammer and it works surprisingly well, but once the nails start looking like screws, don't try to turn the type class system into a part time screw driver |
2024-08-07 16:41:12 +0200 | <kuribas> | SrPr: right, that sounds neat! |
2024-08-07 16:41:27 +0200 | <Inst> | i mean it should work, right? I haven't tested it yet, and I'm about to go to sleep |
2024-08-07 16:41:50 +0200 | <kuribas> | SrPr: do you mean to search for the variant that typechecks a dependent type? |
2024-08-07 16:41:54 +0200 | <SrPx> | specifically, suppose you need to test the output of 1000000 slightly different functions, when applied to some input. you could try each function separately, but that'd take a lot of time. or you could use optimal evaluation to apply them all "at the same time", and all "identical intermediate computations" get "shared" / computed only once. so, this greatly speeds the search |
2024-08-07 16:42:19 +0200 | <SrPx> | it is still exponential (because there are exponentially many functions), but each function call becomes several times less expensive, which makes the whole thing slightly more viable |
2024-08-07 16:42:39 +0200 | <EvanR> | Inst, pretty printing and Debug.Trace, now you're in harrowing territory! |
2024-08-07 16:42:49 +0200 | <kuribas> | SrPr: like egraphs? |
2024-08-07 16:42:49 +0200 | <SrPx> | slightly as in, something that would take 100 years could be done in hours |
2024-08-07 16:43:26 +0200 | <SrPx> | kuribas: egraphs are amazing! not exactly related as they're more about caching equalities |
2024-08-07 16:43:36 +0200 | lol_ | (~lol@2603:3016:1e01:b980:dd5c:a977:63e6:618d) |
2024-08-07 16:43:43 +0200 | <kuribas> | SrPx: right. Can you do proof search with optimal evaluation? |
2024-08-07 16:43:44 +0200 | <SrPx> | while this is about sharing identical computations in different function calls |
2024-08-07 16:43:56 +0200 | swamp_ | (~zmt00@user/zmt00) |
2024-08-07 16:44:07 +0200 | <SrPx> | btw I do wonder if optimal evaluation could be applied to optimize egraphs |
2024-08-07 16:44:17 +0200 | <SrPx> | kuribas: yes the plan is to use this for proof search! |
2024-08-07 16:44:18 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:1e90:74c3:2754:ce8a) |
2024-08-07 16:44:38 +0200 | <SrPx> | most proof search algorithms behind assistants like agda etc. just use a silly exhaustive enumeration, with a timeout |
2024-08-07 16:44:43 +0200 | <SrPx> | and they're already quite useful as is |
2024-08-07 16:44:48 +0200 | hgolden__ | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) |
2024-08-07 16:44:56 +0200 | <SrPx> | so, if that can be made 100x-10000x faster, yes that's nice right |
2024-08-07 16:45:21 +0200 | tcard | (~tcard@2400:4051:5801:7500:1e90:74c3:2754:ce8a) (Read error: Connection reset by peer) |
2024-08-07 16:45:30 +0200 | <opqdonut> | isn't discovering the sharing quite a bit of work as well? |
2024-08-07 16:45:46 +0200 | <opqdonut> | unless the variants have been generated so that they already share structure... |
2024-08-07 16:46:27 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-07 16:46:45 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 16:47:01 +0200 | Guest96 | (~Guest96@2a01cb058fdd8800c599eccdcbbe5038.ipv6.abo.wanadoo.fr) |
2024-08-07 16:47:36 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 276 seconds) |
2024-08-07 16:47:36 +0200 | hgolden_ | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Ping timeout: 276 seconds) |
2024-08-07 16:47:36 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b980:1aa:6452:eda4:91c6) (Ping timeout: 276 seconds) |
2024-08-07 16:47:41 +0200 | <kuribas> | SrPr: that would be amazing :) |
2024-08-07 16:48:12 +0200 | <kuribas> | SrPr: proof search is just program generation. Idris does that and has some algorithm to exclude trivial programs. |
2024-08-07 16:48:50 +0200 | Guest96 | (~Guest96@2a01cb058fdd8800c599eccdcbbe5038.ipv6.abo.wanadoo.fr) (Client Quit) |
2024-08-07 16:51:45 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: nap) |
2024-08-07 16:52:10 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-07 16:53:06 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-08-07 16:54:01 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) |
2024-08-07 16:57:30 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-08-07 16:59:17 +0200 | <SrPx> | yes |
2024-08-07 17:00:23 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-07 17:00:33 +0200 | <EvanR> | generate me a program of type MassivelyProfitableMMO |
2024-08-07 17:00:41 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 17:01:41 +0200 | tabemann_ | (~tabemann@2600:1700:7990:24e0:c35:f6c5:f5d8:bf3) (Ping timeout: 248 seconds) |
2024-08-07 17:01:59 +0200 | <Inst> | type MassivelyProfitableMMO = IO ExitCode; main = exitSuccess; |
2024-08-07 17:03:32 +0200 | <EvanR> | that definition sucks |
2024-08-07 17:05:12 +0200 | hc | (~hc@sing.esp.sg) (Ping timeout: 252 seconds) |
2024-08-07 17:07:09 +0200 | hc | (~hc@2407:d200:d002:43:229:85:195:3) |
2024-08-07 17:08:27 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-08-07 17:13:28 +0200 | st_aldini | (~Thunderbi@2605:a601:a07c:a000:3236:4a12:708b:5d23) |
2024-08-07 17:13:28 +0200 | <Mateon1> | You have to admit that this game would contain zero bugs, though |
2024-08-07 17:13:36 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2024-08-07 17:14:07 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 17:20:13 +0200 | <int-e> | words don't have that much power |
2024-08-07 17:23:16 +0200 | <EvanR> | because this is code and not magic? that there's yer problem |
2024-08-07 17:33:45 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2024-08-07 17:34:02 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) |
2024-08-07 17:36:16 +0200 | euleritian | (~euleritia@dynamic-176-006-133-156.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-07 17:36:38 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-07 17:37:03 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 17:42:46 +0200 | <Inst> | any haskell project can reach mvp status simply in one line: main = undefined |
2024-08-07 17:43:28 +0200 | <haskellbridge> | <mauke> But is it able to vie? |
2024-08-07 17:49:48 +0200 | <Mateon1> | Actually unfortunately not quite true that a trivial main would be bugfree. The haskell runtime itself has issues in some environments. I recall having some issues with GHC using some weird syscalls that didn't work on WSL, back when I still used windows |
2024-08-07 17:50:57 +0200 | <Mateon1> | As in, programs compiled with GHC didn't work at all, not that GHC wasn't working in that environment |
2024-08-07 17:55:23 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 17:57:38 +0200 | <c_wraith> | to be fair, that was WSL not actually providing the semantics linux kernels do |
2024-08-07 17:58:15 +0200 | <c_wraith> | (It couldn't allocate half a terabyte on program startup without actually enumerating it. Linux is happy to do that.) |
2024-08-07 18:00:26 +0200 | Inst | (~Inst@user/Inst) (Ping timeout: 255 seconds) |
2024-08-07 18:04:09 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2024-08-07 18:04:47 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-08-07 18:06:01 +0200 | hgolden__ | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Remote host closed the connection) |
2024-08-07 18:07:46 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) |
2024-08-07 18:14:06 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-08-07 18:14:34 +0200 | alexherbo2 | (~alexherbo@2a02-8440-341b-febc-249e-3732-ad8c-d761.rev.sfr.net) (Remote host closed the connection) |
2024-08-07 18:14:42 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-08-07 18:15:14 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) (Ping timeout: 260 seconds) |
2024-08-07 18:15:56 +0200 | alexherbo2 | (~alexherbo@2a02-8440-341b-febc-9d5d-6de9-06be-1722.rev.sfr.net) |
2024-08-07 18:19:16 +0200 | alexherbo2 | (~alexherbo@2a02-8440-341b-febc-9d5d-6de9-06be-1722.rev.sfr.net) (Remote host closed the connection) |
2024-08-07 18:20:43 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-07 18:22:20 +0200 | skyesoss | (~Thunderbi@128.135.204.35) |
2024-08-07 18:22:34 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 18:26:36 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
2024-08-07 18:26:42 +0200 | dans49871 | (~danse-nr3@user/danse-nr3) |
2024-08-07 18:27:48 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-07 18:29:26 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 18:30:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 18:34:24 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-07 18:36:17 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 18:43:13 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-08-07 18:47:54 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 18:48:09 +0200 | <dans49871> | is there a term to distinguish a type like Foo Char Int Bool from Foo { c :: Char, i :: Int, b :: Bool}? |
2024-08-07 18:48:29 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 18:49:08 +0200 | <ncf> | one has named fields/projections, the other doesn't |
2024-08-07 18:49:28 +0200 | <dans49871> | right, so ... fieldless? |
2024-08-07 18:49:43 +0200 | smalltalkman | (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-07 18:49:44 +0200 | <dans49871> | versus "fieldful"? ^^; |
2024-08-07 18:50:35 +0200 | <EvanR> | record type |
2024-08-07 18:50:43 +0200 | <EvanR> | well it's not a record type, but a record |
2024-08-07 18:50:46 +0200 | <dans49871> | versus? |
2024-08-07 18:51:05 +0200 | <dans49871> | nah they are both records aren't they |
2024-08-07 18:51:09 +0200 | <EvanR> | basic bitch ADT |
2024-08-07 18:51:21 +0200 | <EvanR> | records have field |
2024-08-07 18:52:06 +0200 | <dans49871> | "naked product"? |
2024-08-07 18:52:53 +0200 | <dans49871> | saw this "naked" being used for syntax elsewhere but i don't really dig it... i'll go with "fieldless" |
2024-08-07 18:53:10 +0200 | <EvanR> | agreed we should be able to write the type with empty string field names |
2024-08-07 18:53:18 +0200 | <ncf> | the report doesn't define records; only record syntax |
2024-08-07 18:53:20 +0200 | <EvanR> | Foo { :: Char, :: Int, :: Bool } |
2024-08-07 18:53:36 +0200 | <ncf> | and calls the projections "field labels" |
2024-08-07 18:53:56 +0200 | <EvanR> | it would be nice if fields and projection functions were not conflated |
2024-08-07 18:54:03 +0200 | <dans49871> | huh we are drifting... well i'll call it "fieldless" |
2024-08-07 18:54:40 +0200 | <dans49871> | in my case, a "fieldless sum", as in: data W = WI Int Int | WB Bool |
2024-08-07 18:55:03 +0200 | <dans49871> | it's a poor term but i doubt we can come with anything better |
2024-08-07 18:57:36 +0200 | dans49871 | (~danse-nr3@user/danse-nr3) (Quit: ooops) |
2024-08-07 19:00:37 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 248 seconds) |
2024-08-07 19:02:26 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-07 19:05:56 +0200 | mzg | (mzg@abusers.hu) (Ping timeout: 244 seconds) |
2024-08-07 19:06:52 +0200 | ft | (~ft@p4fc2aa15.dip0.t-ipconnect.de) |
2024-08-07 19:07:34 +0200 | mzg | (mzg@abusers.hu) |
2024-08-07 19:08:25 +0200 | <EvanR> | it's an ADT |
2024-08-07 19:08:25 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Read error: Connection reset by peer) |
2024-08-07 19:08:56 +0200 | <EvanR> | blah |
2024-08-07 19:10:51 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-08-07 19:14:27 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) |
2024-08-07 19:14:27 +0200 | ChanServ | +v haskellbridge |
2024-08-07 19:19:23 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-07 19:20:56 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-08-07 19:31:46 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2024-08-07 19:33:20 +0200 | Square | (~Square@user/square) |
2024-08-07 19:35:14 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 272 seconds) |
2024-08-07 19:36:44 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-07 19:46:04 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-08-07 19:47:40 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-07 19:49:06 +0200 | krei-se | (~krei-se@p5085d903.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-08-07 19:49:47 +0200 | amjoseph | (~amjoseph@static-198-44-128-146.cust.tzulo.com) (Ping timeout: 255 seconds) |
2024-08-07 19:50:34 +0200 | krei-se | (~krei-se@p57af2b6c.dip0.t-ipconnect.de) |
2024-08-07 19:51:46 +0200 | TMA | (tma@twin.jikos.cz) (Ping timeout: 248 seconds) |
2024-08-07 20:03:33 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 20:09:11 +0200 | shoggouth | (uid607148@user/shoggouth) |
2024-08-07 20:10:18 +0200 | amjoseph | (~amjoseph@static-198-44-128-146.cust.tzulo.com) |
2024-08-07 20:10:56 +0200 | TMA | (tma@twin.jikos.cz) |
2024-08-07 20:15:41 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2024-08-07 20:18:22 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-08-07 20:20:44 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: so long) |
2024-08-07 20:40:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 20:56:12 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-07 20:56:45 +0200 | lystra | (~lystra@208.59.105.41) (Remote host closed the connection) |
2024-08-07 20:57:02 +0200 | Batzy | (~quassel@user/batzy) |
2024-08-07 21:02:11 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-07 21:04:21 +0200 | dawkrish | (~dawkrish@2401:4900:883d:f037:209b:6d5:7ef5:8a8f) |
2024-08-07 21:05:30 +0200 | <dawkrish> | hi, I am new here |
2024-08-07 21:06:43 +0200 | <EvanR> | hi |
2024-08-07 21:09:07 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 264 seconds) |
2024-08-07 21:09:50 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 21:15:53 +0200 | terrorjack | (~terrorjac@static.163.82.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
2024-08-07 21:16:59 +0200 | terrorjack | (~terrorjac@2a01:4f8:121:32e8::) |
2024-08-07 21:21:25 +0200 | slac21088 | (~slack1256@2803:c600:5111:8029:469f:21dd:e308:1389) |
2024-08-07 21:22:28 +0200 | slack1256 | (~slack1256@2803:c600:5111:80cb:a1ed:c7bd:aa66:b480) (Ping timeout: 265 seconds) |
2024-08-07 21:25:25 +0200 | dawkrish | (~dawkrish@2401:4900:883d:f037:209b:6d5:7ef5:8a8f) (Ping timeout: 256 seconds) |
2024-08-07 21:27:12 +0200 | <monochrom> | I believe that we need no term for this. |
2024-08-07 21:28:22 +0200 | dsrt^ | (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2024-08-07 21:34:30 +0200 | <jle`> | maybe positional or recordless |
2024-08-07 21:34:34 +0200 | <jle`> | * non-record |
2024-08-07 21:39:05 +0200 | lol_ | (~lol@2603:3016:1e01:b980:dd5c:a977:63e6:618d) (Ping timeout: 252 seconds) |
2024-08-07 21:39:08 +0200 | <EvanR> | what about ADTs which aren't GADTs, or ADTs which aren't existential |
2024-08-07 21:39:19 +0200 | <EvanR> | negative jargon |
2024-08-07 21:40:26 +0200 | <EvanR> | ADTs which are against everything, perhaps contrarian ADTs |
2024-08-07 21:40:55 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-07 21:41:53 +0200 | <jle`> | if you told me that the constructor had positional arguments i think it'd understand |
2024-08-07 21:42:10 +0200 | <jle`> | so it's more like a positive ascription in that case |
2024-08-07 21:42:17 +0200 | <jle`> | but then i guess you can also use records positionally |
2024-08-07 21:43:52 +0200 | <jle`> | it's a slow day and this problem has my full attention |
2024-08-07 21:44:23 +0200 | <danse-nr3> | hmm... "positional"! Makes a lot of sense. Thanks jle` |
2024-08-07 21:45:42 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection) |
2024-08-07 21:45:48 +0200 | <jle`> | i guess it's like a parallel between positional arguments vs. named arguemnts in function syntax for other languages. but definitely not commonly used to refer to ADTs heh |
2024-08-07 21:46:17 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) |
2024-08-07 21:50:24 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-08-07 21:51:14 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b980:dd5c:a977:63e6:618d) |
2024-08-07 21:53:59 +0200 | <EvanR> | record syntax types are not positional? |
2024-08-07 21:54:12 +0200 | <danse-nr3> | well they /also/ are |
2024-08-07 21:54:18 +0200 | <EvanR> | positional seems to be more how you construct and pattern match than about the type itself |
2024-08-07 21:54:34 +0200 | <monochrom> | I guess it's a slow day and a worthless question has everything's full attention. |
2024-08-07 21:54:34 +0200 | <EvanR> | assuming you don't know how it's implemented |
2024-08-07 21:54:57 +0200 | <danse-nr3> | yeah i'm satisfied with what we've got no reason to delve more |
2024-08-07 21:55:00 +0200 | <monochrom> | Is an ADT a GADT? |
2024-08-07 21:57:31 +0200 | <Franciman> | hi monochrom and EvanR did you read the paper about the parallel complexity of simple logic programs? |
2024-08-07 21:57:39 +0200 | <monochrom> | No. |
2024-08-07 21:57:57 +0200 | <Franciman> | rip |
2024-08-07 21:57:59 +0200 | <Franciman> | ok thank you |
2024-08-07 21:58:06 +0200 | <EvanR> | no but that sounds interesting |
2024-08-07 21:59:22 +0200 | <Franciman> | not according to monochrom |
2024-08-07 21:59:33 +0200 | <danse-nr3> | they just haven't read it |
2024-08-07 22:01:50 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-07 22:02:20 +0200 | <Franciman> | no danse-nr3 this was a test |
2024-08-07 22:02:24 +0200 | <Franciman> | and everything went as expecte |
2024-08-07 22:02:26 +0200 | <Franciman> | expected |
2024-08-07 22:02:41 +0200 | <danse-nr3> | huh as you wish |
2024-08-07 22:03:08 +0200 | <zfnmxt> | Is there a .nix file anywhere to install lambdabot? |
2024-08-07 22:04:09 +0200 | <Franciman> | there are people in this community that no matter how hard you try, have decided to have an opinion on you |
2024-08-07 22:04:12 +0200 | <Franciman> | and will never change it |
2024-08-07 22:04:17 +0200 | <Franciman> | so let it be this weay |
2024-08-07 22:04:18 +0200 | <Franciman> | good riddance |
2024-08-07 22:04:28 +0200 | <danse-nr3> | ? |
2024-08-07 22:05:05 +0200 | <Franciman> | i give up |
2024-08-07 22:05:28 +0200 | <EvanR> | > cake |
2024-08-07 22:05:29 +0200 | <lambdabot> | error: |
2024-08-07 22:05:29 +0200 | <lambdabot> | • Variable not in scope: cake |
2024-08-07 22:05:30 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2024-08-07 22:05:36 +0200 | <EvanR> | test failed |
2024-08-07 22:05:37 +0200 | <danse-nr3> | what's up Franciman, i'm completely lost |
2024-08-07 22:07:58 +0200 | <danse-nr3> | dunno zfnmxt ... if there was it would be in its repo i guess? |
2024-08-07 22:09:20 +0200 | <zfnmxt> | danse-nr3: Yeah, didn't see anything. It has some runtime dependencies that fail if you just install it the usual way (related to hint or mueval or something); was hoping someone set it up on their nix server somewhere and could just give me a working config. |
2024-08-07 22:16:04 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 244 seconds) |
2024-08-07 22:16:25 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-07 22:26:35 +0200 | dans53522 | (~danse-nr3@user/danse-nr3) |
2024-08-07 22:28:42 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds) |
2024-08-07 22:29:09 +0200 | skyesoss | (~Thunderbi@128.135.204.35) (Ping timeout: 248 seconds) |
2024-08-07 22:40:34 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-08-07 22:44:01 +0200 | ubert | (~Thunderbi@178.115.47.16.wireless.dyn.drei.com) (Ping timeout: 248 seconds) |
2024-08-07 22:48:20 +0200 | dans53522 | (~danse-nr3@user/danse-nr3) (Quit: goood night) |
2024-08-07 22:59:56 +0200 | michalz | (~michalz@185.246.207.217) (Remote host closed the connection) |
2024-08-07 23:00:33 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-07 23:05:51 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-07 23:08:39 +0200 | hueso | (~root@user/hueso) (Ping timeout: 260 seconds) |
2024-08-07 23:11:21 +0200 | hueso | (~root@user/hueso) |
2024-08-07 23:13:35 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-07 23:32:33 +0200 | Square | (~Square@user/square) (Ping timeout: 276 seconds) |
2024-08-07 23:44:08 +0200 | hueso | (~root@user/hueso) (Ping timeout: 252 seconds) |
2024-08-07 23:45:13 +0200 | hueso | (~root@user/hueso) |
2024-08-07 23:48:01 +0200 | <glguy> | data A = B { _ :: C } |
2024-08-07 23:48:21 +0200 | <glguy> | We have a convention for explicitly not providing a name |
2024-08-07 23:48:39 +0200 | <EvanR> | dude |
2024-08-07 23:48:46 +0200 | <EvanR> | er, guy |
2024-08-07 23:48:54 +0200 | <glguy> | Maybe someone said that already, I didn't read everything |
2024-08-07 23:49:14 +0200 | <EvanR> | @define data A = B { _ :: Char, _ :: Double } |
2024-08-07 23:49:14 +0200 | <lambdabot> | Parse failed: Illegal special name |
2024-08-07 23:49:15 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds) |
2024-08-07 23:49:21 +0200 | <EvanR> | @define data A = B { _ :: Char } |
2024-08-07 23:49:21 +0200 | <lambdabot> | Parse failed: Illegal special name |
2024-08-07 23:49:24 +0200 | <EvanR> | ILLEGAL |
2024-08-07 23:49:28 +0200 | <glguy> | Doesn't with, yet. :) |
2024-08-07 23:49:36 +0200 | <glguy> | Work* |
2024-08-07 23:54:30 +0200 | wroathe | (~wroathe@c-66-41-76-89.hsd1.mn.comcast.net) |
2024-08-07 23:54:30 +0200 | wroathe | (~wroathe@c-66-41-76-89.hsd1.mn.comcast.net) (Changing host) |
2024-08-07 23:54:30 +0200 | wroathe | (~wroathe@user/wroathe) |
2024-08-07 23:58:26 +0200 | pavonia | (~user@user/siracusa) |