Logs: freenode/#haskell
| 2020-11-14 12:32:40 | <merijn> | And of course GHC has the best (only real?) software transactional memory implementation |
| 2020-11-14 12:32:40 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds) |
| 2020-11-14 12:32:41 | <Feuermagier> | interesing. but I gess i'm not at that stage yet. maybe in a few weeks |
| 2020-11-14 12:32:56 | <Feuermagier> | merijn, what is that? |
| 2020-11-14 12:33:26 | × | jakalx quits (~jakalx@base.jakalx.net) (Ping timeout: 258 seconds) |
| 2020-11-14 12:34:06 | <merijn> | Feuermagier: Basically you get shared mutable variables with the ability to make atomic updates to them (like, not atomic on the invididual variable, but "this entire set of operations on multiple variables happens atomically") |
| 2020-11-14 12:34:13 | <Ariakenom> | i agree. haskell's concurrency is great |
| 2020-11-14 12:35:04 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-11-14 12:35:52 | <merijn> | Feuermagier: You should browse through the modules under Control.Concurrent in base: https://hackage.haskell.org/package/base-4.14.0.0 and the STM package: https://hackage.haskell.org/package/stm |
| 2020-11-14 12:36:08 | <Feuermagier> | thx! |
| 2020-11-14 12:36:09 | <merijn> | Feuermagier: The STM package should also have a link to the paper that explains it in detail |
| 2020-11-14 12:36:48 | <merijn> | Oh, and maybe stuff like |
| 2020-11-14 12:36:51 | <merijn> | @hackage async |
| 2020-11-14 12:36:51 | <lambdabot> | https://hackage.haskell.org/package/async |
| 2020-11-14 12:36:53 | <Feuermagier> | the more you guys explain the workings of this language, the more i like it :) |
| 2020-11-14 12:37:37 | <int-e> | . o O ( it's a trap! ) |
| 2020-11-14 12:37:48 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-14 12:37:55 | → | littleEngine joins (52500aba@bzq-80-10-186.static.bezeqint.net) |
| 2020-11-14 12:38:03 | → | m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
| 2020-11-14 12:38:21 | <Ariakenom> | "Parallel and Concurrent Programming in Haskell" is great. im not sure if you can just jump into the chapter on stm but I will link it |
| 2020-11-14 12:38:22 | <Ariakenom> | https://web.archive.org/web/20171114084950/http://chimera.labs.oreilly.com/books/1230000000929/ch10.html |
| 2020-11-14 12:38:34 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 2020-11-14 12:38:56 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 2020-11-14 12:39:16 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 2020-11-14 12:39:43 | <Ariakenom> | looks like its mostly readable on its own |
| 2020-11-14 12:40:01 | <littleEngine> | hey.. are there any ideas in the community about functional machine learning |
| 2020-11-14 12:41:06 | → | coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
| 2020-11-14 12:41:26 | <littleEngine> | i dont mean deep learning in haskell but more like genetically searching for some pure function |
| 2020-11-14 12:41:43 | <merijn> | bah...keeping my parser and pretty printer in sync feels like a solved problem, but I can't seem to figure out how to encode it |
| 2020-11-14 12:42:35 | × | HaskellYogi quits (~vivekrama@49.207.205.17) (Remote host closed the connection) |
| 2020-11-14 12:42:48 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 2020-11-14 12:43:07 | <Ariakenom> | there's some on inferring a value (ex function) from its type. in contrast to inferring a type from a value like we do currently |
| 2020-11-14 12:44:39 | <littleEngine> | hmm.. seems impossible without some extra information on the function |
| 2020-11-14 12:44:55 | <Ariakenom> | forall a. a -> a |
| 2020-11-14 12:45:25 | <littleEngine> | id |
| 2020-11-14 12:45:33 | <merijn> | littleEngine: That sorta stuff is generally done on the AST level |
| 2020-11-14 12:47:01 | <merijn> | hmm...there's no real way to talk about constructors in a first class way, is there? |
| 2020-11-14 12:47:03 | <Ariakenom> | didnt we have a bot that does this? |
| 2020-11-14 12:47:17 | <merijn> | @free a -> a |
| 2020-11-14 12:47:17 | <lambdabot> | Extra stuff at end of line |
| 2020-11-14 12:47:20 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 2020-11-14 12:47:21 | <merijn> | hmm |
| 2020-11-14 12:47:34 | <merijn> | wrong command maybe |
| 2020-11-14 12:47:44 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 2020-11-14 12:47:53 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 2020-11-14 12:47:57 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-14 12:48:13 | → | geekosaur joins (ac3a54da@172.58.84.218) |
| 2020-11-14 12:48:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 2020-11-14 12:48:23 | <Ariakenom> | I found a link https://www.hedonisticlearning.com/djinn/ |
| 2020-11-14 12:48:24 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 2020-11-14 12:48:50 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 2020-11-14 12:49:25 | → | lucasb joins (uid333435@gateway/web/irccloud.com/x-cfrklqgkylyarqua) |
| 2020-11-14 12:49:46 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 2020-11-14 12:49:49 | <merijn> | @djinn a -> a |
| 2020-11-14 12:49:49 | <lambdabot> | f a = a |
| 2020-11-14 12:50:01 | <merijn> | @djinn (a -> b) -> [a] -> [b] |
| 2020-11-14 12:50:01 | <lambdabot> | Error: Undefined type [] |
| 2020-11-14 12:50:05 | <merijn> | bleh |
| 2020-11-14 12:50:38 | → | HaskellYogi joins (~vivekrama@49.207.205.17) |
| 2020-11-14 12:50:45 | × | jakalx quits (~jakalx@base.jakalx.net) (Ping timeout: 240 seconds) |
| 2020-11-14 12:51:16 | <littleEngine> | im trying to make a learner for musical instruments where an instrumet is a composition of a deformation, an instrument_logic , and a Listen function |
| 2020-11-14 12:52:05 | <littleEngine> | Deform :: Player_state x Instrument_state --> instrument_state |
| 2020-11-14 12:52:17 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 2020-11-14 12:52:35 | <littleEngine> | Instrument_logic :: Instrument_state -> Instrument_State |
| 2020-11-14 12:52:53 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-11-14 12:53:03 | <littleEngine> | Listen :: InstrumentState -> Audio_chunk |
| 2020-11-14 12:54:06 | <Feuermagier> | how do i set a double to infinite? |
| 2020-11-14 12:54:27 | <merijn> | Same way as every language with IEEE-754 |
| 2020-11-14 12:54:32 | <merijn> | > 1/0 :: Double |
| 2020-11-14 12:54:34 | <lambdabot> | Infinity |
| 2020-11-14 12:54:58 | <Feuermagier> | well, yes, but usually there's a static variable like "MAX_INTEGER" |
| 2020-11-14 12:55:02 | <merijn> | > -1/0 :: Double |
| 2020-11-14 12:55:04 | <lambdabot> | -Infinity |
| 2020-11-14 12:55:31 | <ski> | > maxBound :: Int |
| 2020-11-14 12:55:33 | <lambdabot> | 9223372036854775807 |
| 2020-11-14 12:55:39 | <merijn> | There isn't one, currently. I usually just do "infty :: Double; infty = 1/0" in my code |
| 2020-11-14 12:55:41 | → | skvidal joins (~skvidal@185.163.110.116) |
| 2020-11-14 12:55:44 | <merijn> | ski: That doesn't work for Double |
| 2020-11-14 12:55:47 | <ski> | yes |
| 2020-11-14 12:55:50 | <merijn> | > maxBound :: Double |
| 2020-11-14 12:55:52 | <lambdabot> | error: |
| 2020-11-14 12:55:52 | <lambdabot> | • No instance for (Bounded Double) arising from a use of ‘maxBound’ |
| 2020-11-14 12:55:52 | <lambdabot> | • In the expression: maxBound :: Double |
| 2020-11-14 12:55:53 | <carter> | merijn: did you message me on ci ? |
| 2020-11-14 12:55:59 | <merijn> | carter: Yeah |
| 2020-11-14 12:56:07 | <carter> | Which channel? |
| 2020-11-14 12:56:21 | <merijn> | carter: Or rather, I replied on twitter |
| 2020-11-14 12:56:41 | <carter> | Derp |
| 2020-11-14 12:56:46 | <merijn> | but it was basically "no, this doesn't exist yet" :p |
| 2020-11-14 12:56:48 | <Ariakenom> | note that the conversions like realToFrac are broken on inf |
| 2020-11-14 12:57:08 | <merijn> | Ariakenom: Well, what could they possibly sensibly be? |
| 2020-11-14 12:57:32 | <Ariakenom> | fair. more broken than necessary. they should error |
| 2020-11-14 12:57:41 | <carter> | There’s some changes to fractional I need to flesh out |
| 2020-11-14 12:57:58 | <merijn> | ugh...why does dispatching on constructors gotta be impossible >.> |
| 2020-11-14 12:58:05 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-14 12:58:13 | → | nckx joins (~nckx@tobias.gr) |
| 2020-11-14 12:58:24 | <merijn> | I'm gonna go make my own language! With first class constructors/patterns and booze. In fact, forget the language! |
| 2020-11-14 12:59:07 | <int-e> | merijn: how do you even type that |
| 2020-11-14 12:59:27 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 256 seconds) |
| 2020-11-14 12:59:31 | <merijn> | int-e: You "just" need a type level way of indicating constructor of a type X |
All times are in UTC.