Haskell is a purely functional programming language, featuring static typing, lazy evaluation, and monadic effects. The primary implementation is GHC, a high-performance compiler with a runtime supporting many forms of parallelism and concurrency.
2
votes
1answer
38 views
Haskell idioms in functions/arguments handling
I came up with this function rangedReplace as an exercice to use recursion and try different ways to make it work (I made at least 3 completely different versions). ...
4
votes
1answer
23 views
Reverse Polish Notation Calculator
Working through Learn You a Haskell, I made a Reverse Polish Notation calculator.
Please critique it.
...
2
votes
1answer
20 views
Folding with trees
I was trying to implement a foldTree function to generate a balanced binary tree from a list of values using foldr (Question 2 ...
3
votes
0answers
39 views
Thinking in 'Haskell' - when to use (state) Monads
I really enjoy Haskell but feel I still have a total beginner's style, and would like to move beyond that. The code below - for Dijkstra's shortest path algorithm - is a case in point. I feel as ...
2
votes
0answers
18 views
Brute force Caesar Cipher decrypter
I wrote the following that tries to crack a message that was encrypted via a simple Caesar cipher through brute force. I'm fairly new to Haskell, so any and all input is appreciated.
Because there are ...
2
votes
1answer
21 views
5
votes
2answers
138 views
Merging time series
Is there a better way to do this?
A time series,
data Model a where
Variant :: [(Day, a)] -> Model a
deriving (Show)
... where type ...
4
votes
0answers
34 views
Project Euler Problem 18 (Haskell) - Maximum path sum I
I've implemented the solution to Project Euler Problem 18 in Haskell and I'd like to get some thoughts on my implementation. Its the dynamic programming solution, working from the bottom up.
...
3
votes
1answer
18 views
Implementing `randoms`
Learn You a Haskell presents the randoms function.
I implemented it as follows:
...
8
votes
1answer
60 views
Random Coin Toss in Haskell
Learn You a Haskell gives an exercise to implement the following function:
...
3
votes
1answer
41 views
Haskell encryption tips
I wrote a variation of the Caeser Cipher and would like some feedback.
Is it idiomatic? Can you generally see anything that can be improved?
Use example:
...
3
votes
3answers
30 views
Push List Element to Top
Please evaluate this function. It takes a list [a] and an Int, i.e. the index, and returns a new list with the selected item at ...
2
votes
1answer
24 views
Implementing Todo in Haskell
Per Learn You a Haskell, I implemented a simple command-line program, Todo, that accepts 1 of 3 arguments: view or ...
2
votes
2answers
251 views
Counting occurrences of Char8s in a file
To learn some Data.Map and Control.Monad.State, I have written the following code, which should count the occurrences of ...
6
votes
2answers
67 views
Splitting a list into overlapping sub-lists
I'm very new to Haskell. I did try it for a few days, a few years ago... but other than that, this is my second day. I'm equally unused to functional programming, by the way.
After much trial and ...
4
votes
1answer
68 views
Dynamic programming with Project Euler #18
I just wanted to get an opinion on my dynamic-programming Haskell implementation of the solution to Project Euler problem 18.
The Problem:
By starting at the top of the triangle below and moving ...
4
votes
1answer
73 views
Code from “Write Yourself a Scheme in 48 Hours” tutorial
I recently went through this Haskell tutorial.
I'd be interested in any thoughts or comments at all, in terms of improving the structure, order, haskell conventions, or that long, kind of ugly eval ...
2
votes
1answer
33 views
v2 - Adding a duplicate entry randomly into a list in haskell using random monad
Next version of Adding a duplicate entry randomly into a list in haskell using random monad
I wrote this trying to set up a Haskell testcase. The aim is to take a list and add a single duplicate from ...
3
votes
2answers
68 views
Haskell Collatz Conjecture
In an attempt to begin properly programming in Haskell, I wrote two functions for calculating numbers and sequences with Collatz's conjecture. I also commented the program quite a lot, because it ...
4
votes
2answers
71 views
Deciding whether a list of sum types is homogeneous
I ran into a problem recently where I had to decide whether a set of sum types was homogeneous (all the same). In itself, this is a pretty simple problem. However, there were a few complicating ...
4
votes
1answer
18 views
Adding a duplicate entry randomly into a list in haskell using random monad
There's a new version of this as v2 - Adding a duplicate entry randomly into a list in haskell using random monad
I wrote this trying to set up a Haskell testcase. The aim is to take a list and add ...
1
vote
1answer
31 views
haskell batch file renamer
This is my first ever haskell, please tell me how I can improve the structure of this simple tool (note depends on MissingH):
...
0
votes
3answers
61 views
Function Composition: $ versus `.`
Learn You a Haskell offers the findKey function:
Here's the book's implementation:
...
1
vote
1answer
30 views
Substitution Cipher in Haskell
Learn You a Haskell presents the Caesar Cipher:
The Caesar cipher is a primitive method of encoding messages by
shifting each character in them by a fixed number of positions in the
alphabet
...
10
votes
2answers
125 views
Processing text files for data extraction and analysis
I started learning Haskell to see if I can use it at my job. A lot of my work is processing text files for data extraction and analysis.
For my first test, I added a counter at the end of each line ...
2
votes
1answer
28 views
Implementing `zip4` in Haskell
Learn You a Haskell explains zip4:
--ghci> zip4 [2,3,3] [2,2,2] [5,5,3] [2,2,2]
-- [(2,2,5,2),(3,2,5,2),(3,2,3,2)]
...
1
vote
3answers
78 views
Efficient Collatz sequence analysis
I'm new to Haskell, and I'm wondering why my programs are so slow compared to other languages.
Haskell, 6 seconds (x64, -O2):
...
5
votes
1answer
29 views
Module representing rational numbers
Taking inspiration from SICP Exercise 2.1, I decided to implement a module in Haskell for rational numbers.
Some of my concerns include:
Is this idiomatic Haskell?
Besides ...
3
votes
2answers
43 views
Implementing Haskell's `insert`
Learn You a Haskell shows the insert function.
insert takes an element and a list of elements that can be sorted and
inserts it into the last position where ...
0
votes
1answer
38 views
Implementing Haskell's `union`
Learn You a Haskell shows the union function:
union also acts like a function on sets. It returns the union of two
lists. It pretty much goes over every ...
1
vote
1answer
20 views
Implementing Haskell's \\ (Set Difference)
Learn You a Haskell presents the \\ function.
\\ is the list difference function. It acts like a set difference,
basically. For every element in the ...
2
votes
1answer
23 views
Implementing Haskell's `delete`
Learn You a Haskell shows the delete function.
delete: deletes first occurrence of item
...
5
votes
3answers
453 views
Implementing Haskell's `unwords`
Learn You a Haskell explains the unwords function.
$unwords ["hey","there","mate"]
"hey there mate"
Here's my implementation.
...
2
votes
1answer
28 views
Implementing Haskell#words
Learn You a Haskell shows the words function.
words and unwords are for splitting a line of text into words or
joining a list of words into a text
Example:
...
1
vote
1answer
21 views
Implementing Haskell#break
Learn You a Haskell demonstrates the break function:
breaks it when the predicate is first true.
Example:
...
1
vote
1answer
34 views
Implementing Haskell#lines
Learn You a Haskell shows the lines function:
It takes a string and returns every line of that string in a separate list.
Example:
...
1
vote
2answers
36 views
Haskell's `partition`
Learn You a Haskell mentions the partition function:
partition takes a list and a predicate and returns a pair of lists.
The first list in the result contains ...
1
vote
1answer
30 views
isPrefixOf & isSuffixOf
Please review and suggest improvements for my isPrefixOf implementation.
...
2
votes
1answer
46 views
Removing duplicates from list and filtering non-letter characters
I'm just starting out in Haskell and have been set an assignment for uni where I have to create a reverse index of words in a text file and find what line numbers they appear on. I also have to remove ...
3
votes
1answer
31 views
2
votes
2answers
46 views
4
votes
1answer
33 views
Counting items in categories
I'm an experienced programmer that also has a little experience with functional programming, although mostly theoretical (as in hobby-level reading and very minor projects).
I recently decided to ...
2
votes
1answer
42 views
2
votes
3answers
328 views
1
vote
1answer
51 views
Haskell#concat Implementation
Here's how I implemented concat - flattens a list of lists into just a list of elements.
...
2
votes
1answer
42 views
Split list into groups of n in Haskell
I need to split a list into equal sublists, e. g [1..9] split into groups of 3 will be [[1, 2, 3], [4, 5, 6], [7, 8, 9]]. I have ...
3
votes
2answers
42 views
Implementing Transpose
I'm implementing transpose in Haskell.
-- transpose [[1,2,3],[4,5,6],[7,8,9]]
-- [[1,4,7],[2,5,8],[3,6,9]]
Please give it a ...
3
votes
2answers
44 views
1
vote
1answer
72 views
Idiomatic IO in Haskell
I'm working through Yet Another Haskell Tutorial. One of the exercises is to prompt the user to enters numbers, entering a 0 to quit. The program should then both sum and multiply all the given ...
1
vote
1answer
40 views
Improving a Haskell FizzBuzz Solution
I wrote a solution to the popularized FizzBuzz problem in Haskell to see how a functional solution looks. I'm more or less happy with my solution, except for the definition of ...