Logs: freenode/#haskell
| 2020-10-14 23:14:43 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 2020-10-14 23:14:44 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 2020-10-14 23:14:44 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 2020-10-14 23:15:45 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 2020-10-14 23:16:17 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds) |
| 2020-10-14 23:16:49 | → | frdg joins (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) |
| 2020-10-14 23:17:42 | → | christo joins (516071d5@81.96.113.213) |
| 2020-10-14 23:18:07 | <christo> | monochrom why & what do you use haskell for? |
| 2020-10-14 23:18:18 | <christo> | i'm obviously completely new to it |
| 2020-10-14 23:18:42 | <christo> | i'm learning it because of "haskell school of music" for my dissertation project |
| 2020-10-14 23:18:57 | <christo> | which is about learning computer music concepts and Euterpea Haskell Lib |
| 2020-10-14 23:19:25 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 258 seconds) |
| 2020-10-14 23:23:47 | → | chris joins (~chris@81.96.113.213) |
| 2020-10-14 23:24:11 | chris | is now known as Guest34530 |
| 2020-10-14 23:24:49 | <Guest34530> | hello |
| 2020-10-14 23:25:25 | <yushyin> | hello Guest34530 |
| 2020-10-14 23:25:38 | <christo> | it's me, just testing a mac irc client |
| 2020-10-14 23:25:53 | <yushyin> | hello christo :) |
| 2020-10-14 23:25:55 | <christo> | what do ya'll guys use haskell for? |
| 2020-10-14 23:25:57 | <christo> | hey ! |
| 2020-10-14 23:26:26 | <peutri> | most everything |
| 2020-10-14 23:26:31 | <Axman6> | christo: not that you asked, but I've been using Haskell professionally for about 6 years (with a few shorter jobs using it before that) I've used it in finance, on a high frequency trading system, made web services with it for geospacial data, and plenty of data processing along with that, I've used it for large scale data processing on the cloud with a lambda-and-queues architecture, and now work on a system in a Haskell derived language to |
| 2020-10-14 23:26:32 | <Axman6> | replace a critical part of one of the largest stock exchanges infrastructure |
| 2020-10-14 23:26:45 | <Axman6> | (ok, in the time I took me to write that you did ask) |
| 2020-10-14 23:27:53 | <christo> | cool |
| 2020-10-14 23:28:05 | × | minne quits (~minne@4e69b241.skybroadband.com) (Ping timeout: 240 seconds) |
| 2020-10-14 23:28:07 | × | jespada quits (~jespada@90.254.245.15) (Ping timeout: 246 seconds) |
| 2020-10-14 23:28:11 | <christo> | why would it be good for computer music? and why use it atall over other languages |
| 2020-10-14 23:28:34 | <christo> | i've seen a lot of people use it for computer music |
| 2020-10-14 23:28:47 | × | dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 265 seconds) |
| 2020-10-14 23:29:11 | <christo> | Axman6 on enterprise/commercial scale haskell projects, what build tools/tools do u use? |
| 2020-10-14 23:29:13 | <Axman6> | I don't think there's anything in particulaar that makes it good for computer music specifically. but overall, the incredibly powerful type system lets you get your thoughts in order, in a way that can be reliably checked |
| 2020-10-14 23:30:05 | <frdg> | christo: Here is a nice video about making music with haskell: https://www.youtube.com/watch?v=FYTZkE5BZ-0 |
| 2020-10-14 23:30:21 | <Axman6> | in the past I used stack mostly, but it is(or was) somewhat more optimised for app development, as opposed to library development, which worked well in a commercial setting |
| 2020-10-14 23:30:51 | → | minne joins (~minne@4e69b241.skybroadband.com) |
| 2020-10-14 23:30:55 | → | jespada joins (~jespada@90.254.245.15) |
| 2020-10-14 23:31:02 | <christo> | Axman6 why should i learn haskell? does it allow me to do things say Java couldn't? |
| 2020-10-14 23:32:01 | <christo> | or is it purely because people like the way it forces you to write code |
| 2020-10-14 23:32:12 | <Axman6> | no, most languages are turing complete and therefore equivalent, by sme definition. but the pleasure of doing it will be quite different, and some languages let you express a lot more with a lot less text |
| 2020-10-14 23:32:31 | × | son0p quits (~son0p@181.136.122.143) (Quit: leaving) |
| 2020-10-14 23:32:53 | <Axman6> | there are many many things which are much nicer in Haskell than other languages though. |
| 2020-10-14 23:33:13 | <Axman6> | writing reusable code is a pleasure, since the type system allows us to be very generic about our types |
| 2020-10-14 23:33:16 | <christo> | so haskell is about the elegance of the code that is being written itself |
| 2020-10-14 23:33:31 | <Axman6> | I wouldn't say that's what it's about |
| 2020-10-14 23:34:10 | <christo> | i'll have to look into it more :) |
| 2020-10-14 23:34:31 | <christo> | can i do multi-threading n' stuff in haskell? |
| 2020-10-14 23:34:51 | <Axman6> | Haskell is probably one of the best languages for doing concurrent programming in |
| 2020-10-14 23:35:24 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 2020-10-14 23:36:32 | <Axman6> | for two reasons - the purity of functions and lack of mutability mean that a lot of the problems with concurrency are eliminated unless you are explicit about them. GHC's multithreading system is one of the most lightweight implementations of any languages, you can happily run hundreds, thousands, or even tens of thousands of threads - network servers are usually implemented by just making a new thread per connection |
| 2020-10-14 23:37:50 | × | dmiles quits (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 272 seconds) |
| 2020-10-14 23:39:07 | <christo> | cool |
| 2020-10-14 23:39:32 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 2020-10-14 23:39:42 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 2020-10-14 23:39:42 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 2020-10-14 23:39:42 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 2020-10-14 23:39:56 | <christo> | in haskell do you have the notion of instances (objects) like in java? |
| 2020-10-14 23:40:13 | × | proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Ping timeout: 260 seconds) |
| 2020-10-14 23:40:22 | <Axman6> | we just have data, which is immutable. we do not have objects |
| 2020-10-14 23:40:27 | <christo> | thx frdg |
| 2020-10-14 23:40:36 | <Axman6> | @sec Bool |
| 2020-10-14 23:40:36 | <lambdabot> | data Bool = False | True deriving (Eq, Ord) |
| 2020-10-14 23:40:48 | <Axman6> | @src Maybe |
| 2020-10-14 23:40:48 | <lambdabot> | data Maybe a = Nothing | Just a |
| 2020-10-14 23:41:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2020-10-14 23:41:44 | <koz_> | Is there something like 'foldMapA :: (Applicative m, Monoid n, Traversable t) => (a -> m n) -> t a -> m n |
| 2020-10-14 23:41:45 | Axman6 | (is in a meeting and will be back later) |
| 2020-10-14 23:41:46 | <koz_> | ' |
| 2020-10-14 23:41:47 | <christo> | cause' i was thinking how would one use haskell to write a game with 20 instances of Frog for example. but i'm sure there's a way |
| 2020-10-14 23:42:06 | <koz_> | christo: An instance is just a data value. |
| 2020-10-14 23:42:14 | <koz_> | So you'd just have 20 things of type Frog. |
| 2020-10-14 23:42:19 | <christo> | cheers for info Axman6 appreciate it |
| 2020-10-14 23:42:40 | <christo> | i see |
| 2020-10-14 23:43:35 | <koz_> | I mean, I guess it's just 'foldMapA f = unAp . foldMap (Ap . f)'. |
| 2020-10-14 23:44:18 | → | max_ joins (~max@bzq-110-168-31-106.red.bezeqint.net) |
| 2020-10-14 23:46:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 2020-10-14 23:46:23 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 2020-10-14 23:46:25 | <MarcelineVQ> | koz_: fold where Monoid (m n) |
| 2020-10-14 23:47:01 | <koz_> | MarcelineVQ: Yeah, which is easiest to get here when we use Ap, rite? |
| 2020-10-14 23:47:13 | × | alp quits (~alp@2a01:e0a:58b:4920:64b8:ef78:ddd5:6ed9) (Ping timeout: 272 seconds) |
| 2020-10-14 23:47:42 | <MarcelineVQ> | seems like it, and foldMap as you did since you wanted to apply some f as well which I overlooked somewhow |
| 2020-10-14 23:48:27 | <hekkaidekapus> | @hoogle (Applicative m, Monoid n, Traversable t) => (a -> m n) -> t a -> m n |
| 2020-10-14 23:48:28 | <lambdabot> | Universum.Monad.Container concatMapM :: (Applicative f, Monoid m, Container (l m), Element (l m) ~ m, Traversable l) => (a -> f m) -> l a -> f m |
| 2020-10-14 23:48:28 | <lambdabot> | Util foldMapA :: (Applicative p, Monoid b, Foldable f) => (a -> p b) -> f a -> p b |
| 2020-10-14 23:48:28 | <lambdabot> | Data.FMList foldMapA :: (Foldable t, Applicative f, Monoid m) => (a -> f m) -> t a -> f m |
| 2020-10-14 23:48:32 | <MarcelineVQ> | iow I added nothing of value :>> |
| 2020-10-14 23:48:46 | <frdg> | would `otherwise` be considered a global variable? |
| 2020-10-14 23:49:00 | <hekkaidekapus> | koz_: Let’s call it foldMapA :) |
| 2020-10-14 23:50:04 | × | jneira quits (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Quit: Connection closed) |
| 2020-10-14 23:50:20 | <koz_> | @hoogle Ap |
| 2020-10-14 23:50:21 | <lambdabot> | Data.Monoid newtype Ap f a |
| 2020-10-14 23:50:21 | <lambdabot> | Data.Monoid Ap :: f a -> Ap f a |
| 2020-10-14 23:50:21 | <lambdabot> | Test.Tasty.Runners newtype Ap f a |
| 2020-10-14 23:50:43 | <MarcelineVQ> | frdg: interesting question, a global constant might be a better label, but even then I'm not sure I'd say that. |
| 2020-10-14 23:51:06 | <MarcelineVQ> | *I wouldn't say that. |
| 2020-10-14 23:51:31 | <frdg> | right, its not much of a variable. |
| 2020-10-14 23:55:32 | → | polyrain joins (~polyrain@2001:8003:e501:6901:65d3:a281:acef:914d) |
| 2020-10-14 23:55:37 | <frdg> | `f :: a -> Bool; f _ = otherwise`. I never thought to do this :) |
| 2020-10-14 23:55:57 | <frdg> | could by my own style |
| 2020-10-14 23:57:38 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 2020-10-14 23:59:05 | × | Tops22 quits (~Tobias@dyndsl-095-033-019-173.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
All times are in UTC.