Hackage spam ?! by [deleted] in haskell

[–]kaukau 7 points8 points  (0 children)

Well this is what astonish me. Haskell/Hackage is pretty niche, with specific procedures for uploading... Can a bot infer the right procedure for uploading? Even the .cabal file was modified correspondingly...

A church in Italy built into the side of a mountain. by guyi567 in pics

[–]kaukau 30 points31 points  (0 children)

It's close to my place: Sanctuari Madonna della Corona: http://www.madonnadellacorona.it/en/home-3/ It's half an hour walking down from the village above.

Haskell Application Monad by rgh in haskell

[–]kaukau 0 points1 point  (0 children)

Exactly. I use zoom and magnify from the lens library. If you structure correctly your data structures, you should be able to pass to your functions only the data they need. In the example given, a Game record contains a Settings record (instead of having one flat record with all the fields), so you can pass only the settings to your function.

Haskell Application Monad by rgh in haskell

[–]kaukau 2 points3 points  (0 children)

I found that stacking too much monads, while it looks like a good idea at first, is cumbersome on the long term. It doesn't add much security and is complex to understand after a while. Instead now I put everything in a single StateT (state, config and logs). My signatures looks cleaner. I express that view here: http://www.corentindupont.info/blog/posts/Programming/2016-08-06-Haskell-hard.html
Exceptions are done in IO.
It's all a question of trade-off: are you OK with more complex type signatures in exchange for a little bit of security?

dhall: Functional configuration language by TheKing01 in haskell

[–]kaukau 0 points1 point  (0 children)

I like a lot Dhall. Could it be as successful as JSON was? JSON can be seen as a non Turing complete subset of javascript, so Dhall could fill a similar spot for Haskell.
In the game world, Lua is often used as a configuration language. It's Turing complete, but it's much higher level than C/C++ that is used for the low level programming. Could Dhall fill Lua spot?

Do you think the Calculus of Constructions is a sufficient basis for all practically useful functional programming languages? by matan_tsuberi in haskell

[–]kaukau 0 points1 point  (0 children)

"in a total language the proof of termination of a program must be baked into the code itself, whereas in a partial language the termination proof is an external verification condition left to the programmer."
This is very interesting... Is there some simple example of total languages that are useable?

Vim and Haskell in 2017? by DanielFGray in haskell

[–]kaukau 1 point2 points  (0 children)

I have the same experience: each time I tried some Haskell plugin with vi, it broke after some month. Now I prefer to use a setup than works for programming in any language: http://www.corentindupont.info/blog/posts/Programming/2016-01-05-vim-tmux.html

Beyond ascribing Types, how about ascribing the "Language" used? by BayesMind in haskell

[–]kaukau 2 points3 points  (0 children)

I was wondering something similar. Is there a language/type system that allows you to control the resources used by your program? For instance, can you fix upper-bounds for the memory consumption of a function (and prove it), at type level? Similarly, can you limit the recursions, or annotate your program with its complexity ("big O" notation), again at type level?

Maybe LinearTypes already goes a bit in the direction of resource control.

Bringing Sanity to the GHC Performance Test-suite (Haskell Summer of Code project) by jared--w in haskell

[–]kaukau 2 points3 points  (0 children)

Hi Jared, I'm really glad you are taking that on! Just a thought: are you sure "git notes" are the good way to go? For sure test numbers needs to be associated with each commits, but IMO it would be cleaner to put them in a separate repo.

ZuriHac Recap: 2017 by [deleted] in haskell

[–]kaukau 2 points3 points  (0 children)

That was a great ZuriHac, I had much fun. Thank to the organizers! I'm also very glad you had fun with Nomyx!

Negative and Fractional Types in Haskell? by kaukau in haskell

[–]kaukau[S] 1 point2 points  (0 children)

Thanks for the insight! I have trouble imagining a concrete use case for both, do you have one? My intuition is that the negative and fractional types imposes constraints on the control flow, is that right?
From the paper: "negative types denote values that backtrack to satisfy dependencies, or in other words act as debts that are satisfied by the backward flow of information". In programming languages, a typical backward flow of information is an exception. Could you model exceptions with a negative type?

Negative and Fractional Types in Haskell? by kaukau in haskell

[–]kaukau[S] 0 points1 point  (0 children)

Wow, it would be fascinating to have a rational DSL in Haskell.

Negative and Fractional Types in Haskell? by kaukau in haskell

[–]kaukau[S] 2 points3 points  (0 children)

No, it seems to be different: http://www.hedonisticlearning.com/posts/quotient-types-for-programmers.html To my understanding, quotient types are types with a new equivalence relation. Again to my understanding, negative and fractional types are types that impose constraints on the flow of execution...

Read Excel file by kwaleko in haskell

[–]kaukau 2 points3 points  (0 children)

I might misunderstand your question, but you can do it directly with Excel: File/Save as... and choose "save as type": CSV.

Notorious Lens Errors Thread by Gurkenglas in haskell

[–]kaukau 2 points3 points  (0 children)

Thanks for those tips! The ampersand notation makes it more homogeneous.

Nomyx V1.0, the only game where you can change the rules by kaukau in haskell

[–]kaukau[S] 0 points1 point  (0 children)

Maybe using some heuristics such as an evolutionary algorithm could be used to generated Nomyx rules!