Stream

Join this community to post or comment

Ivan Miljenovic

Discussion  - 
 
Dammit, GHC-Head... stop giving me piecemeal redundant constraint warnings!

I push a change to GitHub, Travis builds it with GHC-Head, I get warnings, I fix them, rinse and repeat.

/me gives up and calls it a day.
1
Add a comment...

Thomas Løcke

Help and Advice  - 
 
A very nice introduction on how to use Haskell to write client-side browser applications.
16
1
Michael Chavinda's profile photo
Add a comment...

Ivan Miljenovic

Discussion  - 
 
 
Does anyone have any experience with the GVD functions in FGL?

It's a bit hard to write tests for functions that you don't understand the point of...
1
Add a comment...
 
Save Infinite Lists to a File

"packman" allows one to save infinite values into finite data by converting the unevaluated thunks themselves into a finite format. These can then be saved to a file for future use, or sent over the network so another computer can continue evaluation. It is also really easy to use. It works with all data types as well. GHC only for now.

This post is a literate haskell program demonstrating this:

> import GHC.Packing

> main =
>     do
>         a <- getChar
>         if a == 'y' --Enter y to create output.txt, or n to read from it
>             then trySerialize z >>= encodeToFile "output.txt"
>             else decodeFromFile "output.txt" >>= deserialize >>= (print . (take 100) :: [Integer] -> IO ())

> z :: [Integer]
> z = [0..]

output.txt will contain the infinite list z
packman - Evaluation-orthogonal serialisation of Haskell data, as a library
12
1
Yuji Yamamoto's profile photo
Add a comment...
 
Great article about using Haskell in production
I was reading the comments on a Haskell post on Lobste.rs and someone said that while there’s a decent amount of posts a…
39
5
Yuri Zhloba's profile photoJosh Lynn's profile photoJorge Devoto's profile photochangsheng liu's profile photo
3 comments
 
Many of the applicants were even grossly over-qualified and were willing to take the job just because it would let them work in Haskell.
^^^^This! Companies that worry about being able to hire Haskell developers have it all wrong.
Add a comment...

Sean Leather

Discussion  - 
 
Interesting concept and description of a Prelude substitute
subhask - Type safe interface for working in subcategories of Hask
11
Jim Stuttard's profile photo
 
+Charles Wells +John Baez Mike's deep learning library project is based on the Rosetta paper so I bet he'd like to know if you have any useful comments on his formulations. He's at Riverside.
Add a comment...

Devang Vázquez

Help and Advice  - 
 
Hi everyone!
I started working with IO on Haskell but i want to know if is there a possible way to simulate a kind of "log in".
I was working with patterns as an example that a teacher gave to me in class, but in that case we were only recognizing if the username exists... but now I want to know if the password exists.
I thought about doing another pattern function inside the first one, but when i did it, it didn't work
So, could anyone give me an advice?
Thank you :)
1
Providence Salumu's profile photoDevang Vázquez's profile photo
4 comments
 
Hey! Thank you for your advices, they really help me. I need to improve a lot, and in fact, a few minutes later I realized i did a mistake in this code (above line 73), but at the end and with your help I solved it.
This's the code.
https://gist.github.com/DevangVz/d13f40b3737522d7de05
+Alex Parker  I had never used gist, but now i'm gonna use it :)
Add a comment...
 
I wondering if anybody knew why windows GHC doesn't support dynamic linking of executables? without this the file size increases very quickly even with EXE brute force compression I can only get a 44% reduce in size..? 
1
Lance Clark's profile photoAdrian “Boom” Nwk's profile photo
4 comments
 
+Lance Clark oh thats a shame then , I was hoping to put together the full package for my project but I guess that part will have to wait
Add a comment...

Zsolt Szatmári

Discussion  - 
 
Hi!

Google was not my friend this time. Do you know of a benchmark which compares performance of AESON vs RapidJSON (c++) ?
1
Noam Lewis's profile photoZsolt Szatmári's profile photo
3 comments
 
I haven't specified because I would be happy to see any such benchmark. But I am most interested now in net parsing performance of many small objects into ready-made records.
Add a comment...

Maciej Piróg

Announcement  - 
 
There are still places available for the Summer School on Generic and Effectful Programming!

http://www.cs.ox.ac.uk/projects/utgp/school/
6
1
Yuji Yamamoto's profile photo
Add a comment...

Thomas Løcke

Discussion  - 
 
In my spare time I'm trying to teach myself Haskell. One of my projects is to port a couple of small Dart servers that are running on Google Compute Engine using the Google Cloud Datastore for storage.

Are any of you guys aware of any Haskell libraries for the Google Cloud Datastore?
2
Add a comment...

Iago Abal

Announcement  - 
 
New release of the (unofficial) #Haskell #bindings to #Z3 SMT solver.

Changelog here: https://bitbucket.org/iago/z3-haskell/src/tip/CHANGES.md
Bindings for the (now open source!) Z3 4.x Theorem Prover (https://github.com/Z3Prover/z3). Z3.Base.C provides the raw foreign imports from Z3's C API. Z3.Base does the marshaling of values between Haskell and C, and transparently handles reference counting of Z3 objects for you.
8
Add a comment...

Ivan Miljenovic

Announcement  - 
 
Please read if you use FGL:

As you may now, for the past few months I've been (finally!) cleaning up FGL, adding tests, etc.

One of the issues that has arisen with this is that the behaviour of the delLEdge function is not well specified when dealing with multiple edges.

Specifically, the documentation states that the purpose is to "Remove an LEdge from the Graph." (emphasis added)... but the behaviour when dealing with multiple edges is to remove all such edges from the graph.

The current version on GitHub is to instead just delete a single such labelled edge, with a new function "delAllLEdge" that replicates the current behaviour.

Before releasing this change, however, I wanted to make sure that I wouldn't break people's code if they rely upon this functionality; I did try and search through GitHub to see who - if anyone - is using this function, but primarily found various copies of fgl embedded into other people's repositories.

As such, please check your code and let me know if this change in behaviour might affect you (if this is the case, I might let delLEdge keep the current behaviour and have a new function delete just one edge).
Synopsis. type Node = Int; type LNode a = (Node, a); type UNode = LNode (); type Edge = (Node, Node); type LEdge b = (Node, Node, b); type UEdge = LEdge (); type Adj b = [(b, Node)]; type Context a b = (Adj b, Node, a, Adj b); type MContext a b = Maybe (Context a b); type Decomp g a b ...
3
1
Neil Mayhew's profile photoIvan Miljenovic's profile photo
3 comments
 
I'd already decided just to change my code to match whatever you did, and having it already on Hackage makes things much easier :-) I've now rebuilt and tested my code with no problems. My app is using fgl to explore Debian package dependencies, and doesn't need to delete edges. I mostly use the higher-level algorithms such as dff, rdff and topsort. I haven't gotten around to putting my code on github yet, but I will do it soon.
Add a comment...

Brent Tubbs

Discussion  - 
 
Things I learned in my last Haskell project, and a comparison to Python and Go.
Thu 09 July 2015 | -- (permalink). I just finished a new programming project, this time in Haskell. Khask is a HTTP file server with a GridFS backend. It's actually my 3rd time writing this program. The first version was Khartoum (in Python). Then I started learning Go, and rewrote the app as ...
21
1
Neil Mayhew's profile photoThomas Løcke's profile photoJorge Devoto's profile photo
4 comments
 
Thank you for sharing this. Very interesting read.  :o)
Add a comment...

Sean Leather

Discussion  - 
 
This is an excellent development. It's good to know that the IHG is there, still supporting the community and continuing to fund the improvement of our tools.
6
Add a comment...

John Cook

Discussion  - 
 
I recently started learning Haskell and thought I'd document the journey. Weekend One. Read Learn You a Haskell for Great Good (LYAH). It's by far the most accessible introduction I've found and is a (relatively) easy and fast read. Weekend Two. Reading two different books on the same subject is ...
15
3
Mark Perry's profile photoMaxim Yanchenko's profile photoYuriy Pitometsu's profile photo
 
Thanks for the guided tour pointer! 
Add a comment...

Daniel Ybanez

Discussion  - 
 
uhh ... i wanna be into programming . and i discover the Haskell website and yeah. i dont have much experience in any programming language but it seems very cool and fun.
  
2
Trevor Thompson's profile photoDaniel Ybanez's profile photo
2 comments
 
awh thanks man haha.  I will check those links out in the AM. im looking forward to dive into this stuff .  
Add a comment...

John Cook

Discussion  - 
 
How Laziness Works. by ~kqr. 2015-06-21. So yesterday I saw someone ask about how many times the variable m gets evaluated in the following Haskell snippet: maxOccurs :: [Int] -> (Int, Int) maxOccurs a = (m, n) where m = maximum a n = length (filter (==m) a). I knew just based on common sense ...
23
6
Joseph Dung's profile photoYuji Yamamoto's profile photoAlex Carter's profile photoChris Jenkins's profile photo
 
This is a very interesting read. Thank you! Also, it's not right that I'm not more familiar with Core. I will rectify that.
Add a comment...
 
Hi there guys I made a video on a new project I'm working on currently. I have just outlined what I am hoping to do for Haskell users hoping to go into game or graphics programming; if they would like it ?

https://youtu.be/S9lI7HQ8auM
9
1
Dev Lila's profile photo
Add a comment...

Ivan Miljenovic

Help and Advice  - 
 
When using QuickCheck with hspec, is the property tested for 100 times like QuickCheck does?

Or is that what the modifyMaxSuccess function is for (so to emulate QC I'd use "modifyMaxSuccess (const 100) . prop")?

I'm asking because the output of hspec is something like "1 example, 0 failures", and only testing for 1 example doesn't sound very reassuring...
Synopsis. modifyMaxSuccess :: (Int -> Int) -> SpecWith a -> SpecWith a; modifyMaxDiscardRatio :: (Int -> Int) -> SpecWith a -> SpecWith a; modifyMaxSize :: (Int -> Int) -> SpecWith a -> SpecWith a; prop :: Testable prop => String -> prop -> Spec ...
1
Add a comment...