Compare commits

...

5 Commits

9 changed files with 64 additions and 33 deletions

5
.gitignore vendored
View File

@ -1,4 +1 @@
*.hi
*.o
Main
Problems
dist-newstyle

21
Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM haskell:9.12.2-slim-bookworm
ARG UID=1000
ARG GID=1000
RUN groupadd -g ${GID} saundersp \
&& useradd -l -m -u "${UID}" -g "${GID}" saundersp
USER saundersp
WORKDIR /home/saundersp/haskell_playground
RUN cabal update
COPY app app
COPY haskell-playground.cabal .
RUN cabal build
ENTRYPOINT ["cabal"]
CMD ["run"]

View File

@ -1,15 +0,0 @@
.PHONY: all Main debug start clean
all: Main
Main: Main.hs
@ghc -Wno-tabs Main.hs
start: Main
@./Main
debug: Main.hs
@ghc -Wno-tabs -keep-hc-files -keep-tmp-files $^
clean:
@rm *.hi Main *.o || true

View File

@ -1,7 +1,8 @@
import Problems ( myLast, lastTwo, kth, myLength, rev, isPalindrome, flatten, NestedList(..), compress, pack, encode )
--import Primes ( aspGetNextPrime, aspIsPrime, aspPrimes )
import Primes ( aspGetNextPrime, aspIsPrime )
import Data.Numbers.Primes ( isPrime, primes, primeFactors )
import Math ( mandlebrot )
--import Math ( mandlebrot )
-- Unit testing
main :: IO()
@ -9,7 +10,7 @@ main = do
testMisc
testProblems
testPrimes
mandlebrot
--mandlebrot
testMisc :: IO()
testMisc = do
@ -37,7 +38,7 @@ testMisc = do
putStrLn ("FizzBuzz 50 " ++ show (fizzBuzz [0..50]))
putStrLn ("Fionacci 10 " ++ show (fibonacci 10))
putStrLn ("FionacciList 10 " ++ show (fibonnaciSequence 10))
putStrLn ("FionacciList 10 " ++ show (fibonaciSequence 10))
testProblems:: IO()
testProblems = do
@ -137,14 +138,14 @@ fizzBuzz (x:xs) = isFizzBuzz x : fizzBuzz xs
| mod x 3 == 0 = "Fizz"
| otherwise = show x
-- Fibonnaci number at indice n
-- Fibonacci number at indice n
fibonacci :: Int -> Int
fibonacci 0 = 0
fibonacci 1 = 1
fibonacci n = fibonacci (n - 1) + fibonacci (n - 2)
-- Fibonnaci sequence until indice n
fibonnaciSequence :: Int -> [Int]
fibonnaciSequence 0 = [0]
fibonnaciSequence 1 = [0, 1]
fibonnaciSequence n = fibonnaciSequence (n - 1) ++ [fibonacci n]
-- Fibonaci sequence until indice n
fibonaciSequence :: Int -> [Int]
fibonaciSequence 0 = [0]
fibonaciSequence 1 = [0, 1]
fibonaciSequence n = fibonaciSequence (n - 1) ++ [fibonacci n]

View File

@ -1,11 +1,11 @@
module Primes ( aspGetNextPrime, aspIsPrime, aspPrimes ) where
--module Primes ( aspGetNextPrime, aspIsPrime, aspPrimes ) where
module Primes ( aspGetNextPrime, aspIsPrime ) where
import Problems ( kth )
aspGetNextPrime :: Int -> Int
aspGetNextPrime 1 = 2
aspGetNextPrime 2 = 3
aspGetNextPrime n
| otherwise = aspGetNextPrime (n + 2)
aspGetNextPrime n = aspGetNextPrime (n + 2)
aspIsPrime :: Int -> Bool
aspIsPrime 1 = False
@ -17,5 +17,5 @@ aspIsPrime n = mod n (aspGetNextPrime 1) == 0
--aspPrimeFactors 1 = [1]
--aspPrimes :: (Integral Int) => [Int]
aspPrimes = sieve [2..]
where sieve (x:xs) = [ x | x <- xs, x mod p == 0]
--aspPrimes = sieve [2..]
-- where sieve (x:xs) = [ x | x <- xs, x mod p == 0]

11
docker-compose.yaml Normal file
View File

@ -0,0 +1,11 @@
services:
haskell-playground:
image: saundersp/haskell-playground
pull_policy: never
build:
args:
UID: ${UID:-1000}
GID: ${GID:-1000}
user: ${UID:-1000}:${GID:-1000}
volumes:
- ./:/home/saundersp/haskell_playground

16
haskell-playground.cabal Normal file
View File

@ -0,0 +1,16 @@
cabal-version: 2.4
name: haskell-playground
version: 0.1.0.0
author: saundersp
maintainer: pierre.saundersgb@gmail.com
executable haskell-playground
main-is: Main.hs
build-depends:
primes,
base ^>=4.21.0.0
other-modules:
Primes
Problems
hs-source-dirs: app
default-language: Haskell2010