Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

Fucking Haskell

Name: Anonymous 2015-07-28 2:24

Why doesn't Haskell excite me as much as Common Lisp did? CL is such a big sweet language with all sorts of cool shit in in. Haskell in comparison seems minimal and I wonder if I'm missing out because I don't understand the magic of types or w/e.

Name: Anonymous 2015-07-28 4:32

>>1
The Prelude is minimal. Part of the point of Haskell is how you can hugely extend the language just by writing a library. If you're using the Haskell Platform distribution and not just the bare-bones GHC+Base, you've got a lot of that to work with, so long as you import it.

Name: Anonymous 2015-07-28 12:17

haskell is shit

Name: Anonymous 2015-07-28 16:09

>>2 that's a nice way to make absence of features into a good thing. As though Cabal wasn't a shitshow and a half.

Name: Anonymous 2015-07-28 18:01

>>2
Just like C.

Name: Anonymous 2015-08-03 15:11

Haskell should be renamed to TypeScript.
Haskell is to type systems what JavaScript is to Java.

Name: Anonymous 2015-08-03 17:40

Anyways, >>1, please listen to me. Not that it's really related to this thread. I went to /prog/ a while ago; you know, world4ch? Well anyways there were an insane number of Haskell programmers in there, and I couldn't post. Then, I googled for the Haskell homepage, and it had "PURELY FUNCTIONAL PROGRAMMING LANGUAGE" written on it. Oh, the stupidity. Those idiots. You don't use a programming language just because it's purely functional, fool. It's only referential transparency, FORCED NO SIDE EFFECTS for crying out loud. There're even companies using it. Company of 400 employees, all downloading some Haskell compiler, huh? How fucking nice. Alright, my manager's gonna use Haskell for the whole project. God I can't bear to watch. You people, I'll give you a damn purely functional language for FREE if you stop fagging up my /prog/. /prog/ should be a bloody place. The tense atmosphere, where two guys on opposite sides of an open discussion can start a fight over VIM vs Emacs at any time, the stab-or-be-stabbed mentality, that's what's great about this place. Haskell fags should screw off and stay home. Anyways, I was about to discuss dynamic typing, and then the bastard beside me goes programming, with Haskell. Who in the world uses Haskell, you moron? I want to ask him, do you REALLY want to use Haskell? I want to interrogate him. I want to interrogate him for roughly an hour. Are you sure you don't just want to try saying Haskell? Coming from a expert programmer such as myself, the latest trend among us vets is this, multi-paradigm languages. That's right, multi-paradigm languages. This is the vet's way of programming. Multi-paradigm languages means more functionality than fappage. But on the other hand the theoretical correctness is a tad lower. This is the key. And then, it's powerful. This is unbeatable. However, if you try this then there is danger that you'll be marked by trolls from next time on; it s a double-edged sword. I can't recommend it to amateurs. What this all really means, though, is that you, >>1, should just stick with today's special.

Name: Anonymous 2015-08-03 18:11

>>7

hahaha great post!

well meme'd, my friend!

Name: Anonymous 2015-08-03 21:21

>>8
Don't you have a reddit to go back to?

Name: Anonymous 2015-08-03 21:55

>>8
Please get AIDS.

Name: Anonymous 2015-08-03 22:11

>>9
Don't you have a nigger dick to suck?

Name: Anonymous 2015-08-03 22:27

>>11
Don't you have dubs I should check?

Name: Anonymous 2015-08-04 11:33

HASKELL NOMADS

Name: Anonymous 2015-08-04 18:45

>>7
vets
Veterinarians?

Name: Anonymous 2015-08-05 18:15

https://en.wikibooks.org/wiki/Haskell/GADT#Safe_Lists
This is what Haskellers actually believe

Name: Anonymous 2015-08-05 23:27

>>15
At least they tried.

Name: Anonymous 2015-08-06 9:02

Haskell is not minimal by any degree.

๐“—๐“ช๐“ผ๐“ด๐“ฎ๐“ต๐“ต ๐“ป๐“ฎ๐“น๐“ป๐“ฎ๐“ผ๐“ฎ๐“ท๐“ฝ๐“ผ ๐“ฝ๐“ฑ๐“ฎ ๐“ฌ๐“ธ๐“ถ๐“น๐“ต๐“ฎ๐“ฝ๐“ฎ๐“ถ๐“ธ๐“ผ๐“ฝ ๐“ฎ๐”๐“ช๐“ถ๐“น๐“ต๐“ฎ ๐“ธ๐“ฏ ๐“พ๐“ท๐“ป๐“ฎ๐“ผ๐“ฝ๐“ป๐“ช๐“ฒ๐“ท๐“ฎ๐“ญ
๐“ช๐“ฎ๐“ผ๐“ฝ๐“ฑ๐“ฎ๐“ฝ๐“ฒ๐“ฌ๐“ฒ๐“ผ๐“ถ ๐“ช๐“ท๐“ญ ๐“ฏ๐“ต๐“ช๐“ถ๐“ซ๐“ธ๐”‚๐“ช๐“ท๐“ฝ ๐“ฑ๐“ธ๐“ถ๐“ธ๐“ผ๐“ฎ๐”๐“พ๐“ช๐“ต๐“ฒ๐“ฝ๐”‚ ๐“ฒ๐“ท ๐“ฝ๐“ฑ๐“ฎ ๐“ช๐“ป๐“ฎ๐“ช ๐“ธ๐“ฏ ๐“น๐“ป๐“ธ๐“ฐ๐“ป๐“ช๐“ถ๐“ถ๐“ฒ๐“ท๐“ฐ
๐“ต๐“ช๐“ท๐“ฐ๐“พ๐“ช๐“ฐ๐“ฎ ๐“ป๐“ฎ๐“ผ๐“ฎ๐“ช๐“ป๐“ฌ๐“ฑ, ๐“๐“น๐“ธ๐“ต๐“ต๐“ธ๐“ท๐“ฒ๐“ช๐“ท ๐“ซ๐“ฎ๐“ช๐“พ๐“ฝ๐”‚ ๐“ฝ๐“ช๐“ด๐“ฎ๐“ท ๐“ฝ๐“ธ ๐“ฝ๐“ฑ๐“ฎ ๐“ช๐“ซ๐“ผ๐“ธ๐“ต๐“พ๐“ฝ๐“ฎ, ๐“ช ๐“น๐“ฎ๐“ป๐“ฏ๐“ฎ๐“ฌ๐“ฝ
๐“ฌ๐“ธ๐“ถ๐“น๐“ธ๐“ผ๐“ฒ๐“ฝ๐“ฒ๐“ธ๐“ท ๐“ธ๐“ฏ ๐“ป๐“ฎ๐“ฐ๐“พ๐“ต๐“ช๐“ป, ๐“ฌ๐“ต๐“ฎ๐“ช๐“ท, ๐”€๐“ฎ๐“ต๐“ต-๐“ญ๐“ฎ๐“ฏ๐“ฒ๐“ท๐“ฎ๐“ญ ๐“ผ๐”‚๐“ท๐“ฝ๐“ช๐” ๐”€๐“ฒ๐“ฝ๐“ฑ ๐“ณ๐“พ๐“ผ๐“ฝ ๐“ฎ๐“ท๐“ธ๐“พ๐“ฐ๐“ฑ
๐“ฝ๐“ช๐“ผ๐“ฝ๐“ฎ๐“ฏ๐“พ๐“ต๐“ต๐”‚ ๐“ฒ๐“ท๐“ฝ๐“ป๐“ธ๐“ญ๐“พ๐“ฌ๐“ฎ๐“ญ ๐“น๐“ฎ๐“ฌ๐“พ๐“ต๐“ฒ๐“ช๐“ป๐“ฒ๐“ฝ๐“ฒ๐“ฎ๐“ผ ๐“ฝ๐“ธ ๐“ถ๐“ช๐“ด๐“ฎ ๐“ฒ๐“ฝ ๐“ฎ๐”๐“น๐“ป๐“ฎ๐“ผ๐“ผ ๐“ช๐“ท๐“ญ ๐“ญ๐“ฎ๐“ฏ๐“ฒ๐“ท๐“ฎ
๐“ฝ๐“ฑ๐“ฎ ๐“ป๐“ฎ๐“ต๐“ช๐“ฝ๐“ฒ๐“ธ๐“ท๐“ผ๐“ฑ๐“ฒ๐“น ๐“ซ๐“ฎ๐“ฝ๐”€๐“ฎ๐“ฎ๐“ท ๐“–๐“ธ๐“ญ ๐“ช๐“ท๐“ญ ๐“œ๐“ช๐“ท.

๐“˜๐“ฝ ๐“ฒ๐“ผ ๐“ช ๐”€๐“ธ๐“ป๐“ด ๐“ธ๐“ฏ ๐“ฏ๐“ฒ๐“ท๐“ฎ๐“ผ๐“ฝ ๐“ช๐“ป๐“ฝ, ๐“ผ๐“ฝ๐“ช๐“ป๐“ฝ๐“ฎ๐“ญ ๐“ซ๐”‚ ๐“ญ๐“ฒ๐“ฟ๐“ฒ๐“ท๐“ฎ ๐“ผ๐“น๐“ช๐“ป๐“ด ๐“ช๐“ท๐“ญ ๐“ฌ๐“ช๐“ป๐“ป๐“ฒ๐“ฎ๐“ญ ๐“ธ๐“พ๐“ฝ
๐“ซ๐”‚ ๐“ฝ๐“ฎ๐“ท๐“ญ๐“ฎ๐“ป ๐“ช๐“ท๐“ญ ๐“ผ๐“ฎ๐“ท๐“ผ๐“ฒ๐“ฝ๐“ฒ๐“ฟ๐“ฎ ๐“ฑ๐“ช๐“ท๐“ญ๐“ผ ๐“ธ๐“ฏ ๐“ฝ๐“ฑ๐“ฎ ๐“ผ๐“ฌ๐“พ๐“ต๐“น๐“ฝ๐“ธ๐“ป.

Name: Anonymous 2015-08-06 15:02

>>15
Encoding length in the list type doesn't require much more work and is significantly more expressive.

Name: Anonymous 2015-08-07 8:25

>>18
But that can not be type-checked.

Name: Anonymous 2015-08-07 9:37

>>19
So what? Take your category theory and shove it up your virgin dick hole.

Name: Anonymous 2015-08-07 12:45

>>18
trying to shoehorn this crap into a language without dependent types is disgusting

trying to get any work done with deptypes is near impossible

Name: Anonymous 2015-08-07 12:54

U MENA DUBS?

Name: Anonymous 2015-08-07 13:54

>>19
It is possible to write the type using GADTs and DataKinds, but some functions (e.g. filter) can't be typed as easily as in a language with fully-dependent types.

Name: Anonymous 2015-08-07 14:28

>>23
The length is going to be encoded with zero and succ or an Int?

Name: Anonymous 2015-08-07 14:53

>>23
you can write filter : (P -> bool) -> list P -> list P just fine
you can also write a strongly specified version which explains that each element of the output list satisfies predicate, it's not any harder

Name: Anonymous 2015-08-07 15:43

>>24
I think that you can use Int directly with the latest GHC. Previous versions of GHC (7.6 and 7.8) don't support type-level arithmetic very well, so you'd use Peano naturals and TypeFamilies to roll your own type-level arithmetic in that case.

>>25
Isn't the problem is that the length of the filtered list isn't known at compile-time? Haskell doesn't have dependent pairs, so you can't write `filter :: (a -> Bool) -> List n a -> (m ** List m a)'.

Name: Anonymous 2015-08-07 15:56

peano naturals are not good for encoding the length of a list, as they are themselves lists of length n (zero = nil, succ = cons).

Not every problem can be solved by the type system. That's equivalent to the halting problem, for certain problems. We're just improving compilers by improving the type system, that's all.

Name: Anonymous 2015-08-07 16:40

>>27
Here's where lisp macros come into play:
Matching against foo list 123 can expand to foo list succ(succ(...(succ(zero)...)).
Of course, a functional lisp with types does not exist.
I don't know if Shen counts as a functional lisp with types. I have just tried to use it but I have failed to define the simplest function: (foo x -> x). It seems awkward that all functions need this format. It's even more awkward that it can not infer the most general type like Haskell does.

Name: Anonymous 2015-08-08 2:43

In the time it's taking you guys to figure out your shitty type system I could have written a Lisp machine.

Name: Anonymous 2015-08-08 11:50

>>29
A useless Lithp machine, you mean. Nobody cares about your half-assed interpreters.

Name: Anonymous 2015-08-09 4:18

"Fucking Haskell" is difficult. I have yet to find a physically fuckable orifice in a noncorporeal thing such as a programming language.

Name: Anonymous 2015-08-09 4:18

>>30
No, a hardware LispM. From transistors.

Name: Anonymous 2015-08-09 5:28

>>31
Stop trying, that's prevented by design. Haskell is supposed to be pure.

Name: Anonymous 2015-08-09 6:18

If I Haskell for the rest of my life will I be greeted in heaven by 71 pure Haskell virgins?

Name: Anonymous 2015-08-09 16:54

>>34
Yes, but you can only look at them, not touch because that would alter their state and would thus be unsafe.

Name: Anonymous 2015-08-09 17:16

Sometimes when I get really lonely I tell my Haskell to count to an infinite number and then when my laptop gets hot I place it on my lap. If I close my eyes and try real hard, it almost feels like there's a girl sitting on my lap.

Name: Anonymous 2015-08-09 17:38

>>36
Albeit a lazy one.

Name: Anonymous 2015-08-09 17:59

>>34
you will, but they're not the kind of virgin you're thinking of

Name: Anonymous 2015-08-09 18:39

>>38
I thoroughly loled

Name: Anonymous 2015-08-13 11:20

Show me on this doll where the monad mutated your state...

Name: Anonymous 2015-08-13 15:04

Monads are for people with no gonads.

Name: Anonymous 2016-11-02 19:48

>>32
transistors is physics, dolt

Name: Anonymous 2016-11-04 2:02

Check dubs

Name: Anonymous 2016-11-04 2:03

>>43
What dubs?

Name: Anonymous 2016-11-04 9:05

>>41
Now that's golden wisdom. Only ballless losers would use a straijacket that limits them instead of making more powerful, and boast about it.

Name: Anonymous 2016-11-04 19:09

>>33
It does have holes you can unsafely stick your impure side effects into, you just have to tell the compiler "trust me, I'll perform IO and then pull out".

Name: Anonymous 2016-11-05 16:42

Haskell is a complete joke when it comes to practicality. The developer tool stack sucks, the defacto standard compiler is grindingly slow and horribly badly written and virtually impossible to build much less develop, the REPL is a toy, the libraries are atrocious and the community consists almost entirely of smug weenies.

In contrast, the OCaml community are quieter because they spend their time solving real problems and shipping production code rather than publishing research papers about The Sieve of Eratosthenes (see Page on hmc.edu). Oh, and they're honest.

Parallelism

OCaml has poor support for multicore parallelism but at least it has been used for large scientific computations on supercomputers using MPI. For example, OCaml held the record for largest symbolic computation ever performed (see Archives of the Caml mailing list > Message from Thomas Fischbacher). Haskell has not. Haskell has a highly experimental and largely ineffectual approach to parallel programming (see Regular, shape-polymorphic, parallel arrays in Haskell) coupled with a bare-bones runtime (nowhere near the level of sophistication or efficiency offered by the JVM or .NET). I am not aware of anybody ever having done anything of that magnitude using Haskell.

Concurrency

Concurrency is a completely different kettle of fish, nothing to do with parallelism and should not be bundled under the same subheading. OCaml has had very solid support for concurrency for over 15 years now. In fact, 15 years ago the heavily concurrent MLDonkey peer-to-peer file sharing client had hundreds of thousands of users (that's probably more users than all Haskell programs ever written combined). No similar success story exists for Haskell. More recently, Haskell got equivalent support for concurrent programming but with few users so it is nowhere near as mature.

Libraries

Haskell has a huge number of very poor quality libraries. OCaml has far fewer but much higher quality libraries. If you want linear algebra then OCaml has lacaml. If you want fourier transforms then OCaml has FFTW. Incidentally, FFTW provides the fourier transform routines used in MATLAB which has millions of users and it is written in OCaml. No similar success story exists for Haskell. OCaml has one official set of LLVM bindings that are shipped with LLVM itself. Haskell has several unofficial bindings none of which are bundled with LLVM so you'll need to play "spot the abandonware" before you even start your project. OCaml is vastly superior when it comes to parsing, with many extremely high quality parser generators available mostly along the lines of standard industrial tools like lex and yacc (ocamllex, ocamlyacc, menhir, dypgen, camlp4). I'm not sure Haskell has any such tools and most developers use a quirky parser combinator library called Parsec that is unlike anything you have ever seen before or will ever see again (it is really quite grim, IMO). To give you some idea, I wrote a Mathematica parser using lex and yacc in OCaml and Wolfram Research bought it. I tried to write the same parser using Parsec and found it to be a nightmare in comparison and nobody is going to pay for that.

Typeclasses vs modules

Haskell has typeclasses. OCaml has higher-order modules. Typeclasses are good "in the small" for things like overloading arithmetic operators. Modules are good "in the large" for structural industrial-size code bases. For example, Citrix use modules to structure their million line code base that is maintained by ~20 OCaml developers. There are no million line Haskell code bases or companies employing 20 Haskell developers but at least the students using Haskell can write the Fibonacci function more elegantly over arbitrary-precision rationals.

Software engineering

Haskell's safety features will lull you into a false sense of security only to throw you under the bus when a deadline looms. You cannot predict performance. You cannot predict memory requirements. Fancy compiler optimisations break under the most bizarre circumstances. You'll need to learn GHC's intermediate language if you want your code to run ok. That's impractical for engineering. Can you imagine a civil engineer saying the bridge is a beautiful shape but nobody knows how much weight it can take?

Haskell has great support for monads and deterministic parallelism. On the other hand, OCaml has a sack full of language features that are designed specifically to make it more practical. For example, function arguments can be labelled or optional in OCaml. Imagine a function that creates a line with a given width, color, dash style, join and end styles. With Haskell you must specify all 6 arguments every time you call the function. With OCaml you can provide sane defaults and provide only one or two arguments most of the time. Not rocket science but very practical.

OCaml has polymorphic variants. For example, OpenGL has the concept of front and back buffers. To refer to the front buffer in Haskell you write:

Graphics.Rendering.OpenGL.Framebuffer.FrontBuffer

In OCaml you write `front. Again, not rocket science but very practical.

Since Perl, dictionaries or hash tables have been one of the most popular data structures. OCaml has had a decent dictionary implementation (Hashtbl) since its inception. In the Haskell world, real users had to complain for 4 years (see Improve interaction between mutable arrays and GC) because Haskell's hash tables were 32x slower than .NETs (see F# vs OCaml vs Haskell: hash table performance) before a serious performance bug in the garbage collector was fixed. Thanks to that fix Haskell is now just 2x slower than OCaml and 10x slower than F# (see Hash table insertion performance: F# vs OCaml vs Haskell).

Finally, perhaps you can measure practicality by the number of people who put their money where their mouth is. OCaml has INRIA's CAML Consortium that allows industrial users to fund work and get OCaml under other licenses. The CAML Consortium has garnered 13 members and is still rising. Three companies using Haskell founded the Haskell Industrial Group in 2009. Over 6 years since then they have succeeded in garnering no new paying members at all.

Name: Anonymous 2016-11-05 17:12

>>47

I'm not your friend ! You can't talk to me in a slang manner.

Name: Anonymous 2016-11-06 8:39

>>47
I mostly agree with your post but then there's
There are no million line Haskell code bases
OH NOES there's no bloated enterprise software written in haskall! how horrible!

Name: Anonymous 2016-11-06 13:07

Name: Anonymous 2016-11-06 13:37

haskell is a codeword for anti-white

Name: Anonymous 2016-11-06 15:04

>>51
Haskell is a white lie to keep the black man down.

Name: Anonymous 2016-11-06 16:01

>>52
Time for some red pill, (((haskell))) was designed to fool white men into wasting their time learning a programming language useless in the real world, so they can't get a job.

The white man who learnt (((haskell))) can't find a job and lives with his parents solving project euler problems, no woman will want to breed with him, so he won't produce white kids. Meanwhile, the nigger who learnt java has some apper job that should be done by a white man instead of him. But thanks to that job, the nigger can support his family and have several nigger kids.

(((haskell))) = white genocide

Name: Anonymous 2016-11-06 16:10

"avoid success at all costs" is Haskell motto
https://www.reddit.com/r/programming/comments/77z8h/avoid_success_at_all_costs_the_unofficial_slogan/
www.codersatwork.com/simon-peyton-jones.html

Name: Anonymous 2016-11-06 20:46

>>54
Peyton Jones saw the ideas of functional programming โ€œas a radical and elegant attack on the whole enterprise of writing programsโ€
Haskell is more anti-enterprise than Lisp.

Name: Anonymous 2016-11-06 21:44

>>53
Whites would rather live child-free because they don't want to burden themselves and the environment with extra mouths and look like the breeders, and niggers don't need to be able to support their offspring before they breed, so all of that is pretty meaningless.

Name: Anonymous 2016-11-07 8:43

>>56
Whites would rather live child-free because they don't want to burden themselves and the environment with extra mouths
This is disgusting and pathetic. You are a hateful liar. Thankfully, many whites think differently from you.

Don't change these.
Name: Email:
Entire Thread Thread List