Compare commits

..

2 Commits

Author SHA1 Message Date
saundersp
66bcee129b Added Dockerfile and docker-compose.yaml 2024-12-05 12:43:14 +01:00
saundersp
4a1ca3d68e Changed repository to a cabal structure 2024-12-05 12:43:06 +01:00
9 changed files with 50 additions and 33 deletions

5
.gitignore vendored
View File

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

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM haskell:9.2.8-slim-buster
WORKDIR /home/saundersp/haskell_playground
RUN cabal update
COPY . .
RUN cabal build
ENTRYPOINT ["cabal", "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]

7
docker-compose.yaml Normal file
View File

@ -0,0 +1,7 @@
services:
haskell-playground:
image: saundersp/haskell-playground
pull_policy: never
build: .
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.16.4.0
other-modules:
Primes
Problems
hs-source-dirs: app
default-language: Haskell2010