CodShot
Haskell Public

Recursive mathematical and list functions in Haskell

Defines various recursive functions for summation, power calculations, and list operations in Haskell, including sums over ranges, power computations, generating infinite lists, and simple list predicates.

Haskell
module Gyak05 where


sumTo :: Integer -> Integer
sumTo x 
 | x <= 0 = 0
 | otherwise = x + sumTo (x-1)


sumBetweenHelper :: Integer -> Integer -> Integer
sumBetweenHelper n m 
 | n == m = n
 | otherwise = sumBetweenHelper n (m-1) + m


sumBetween :: Integer -> Integer -> Integer
sumBetween n m
 | n > m = sumBetweenHelper m n
 | otherwise = sumBetweenHelper n m


sumSquaresFromTo :: Integer -> Integer -> Integer
sumSquaresFromTo n m
 | n > m = 0
 | n == m = n ^ 2
 | otherwise = n^2 + sumSquaresFromTo (n+1) m


sqr :: Integer -> Integer
sqr x = x ^ 2


powerN :: Integer -> Integer -> Integer 
powerN x 0 = 0
powerN x n = x * powerN x (n-1)


pwr :: Integer -> Integer -> Integer
pwr x n
 | n == 0 = 1
 | odd n = x * pwr x (n-1)
 | otherwise = sqr (pwr x (n `div` 2))

pwr2 :: Integer -> Integer -> Integer
pwr2 x n
 | n == 0 = 1
 | odd n = x * pwr x (n-1)
 | otherwise = pwr x (n `div` 2) * pwr x (n `div` 2)



--Listak

divByNHelper :: Integer -> Integer -> [Integer]
divByNHelper n x = ((n*x) : divByNHelper n (x+1))


divByN :: Integer -> [Integer]
divByN n = divByNHelper n 0


isNull :: [Integer] -> Bool
isNull [] = True
isNull _ = False

isNull2 :: [a] -> Bool
isNull2 (x:xs) = False
isNull2 _ = True


isNull3 :: [a] -> Bool
isNull3 (_:_) = False
isNull3 _ = True


hd :: [Integer] -> Integer 
hd (x:xs) = x


thrd :: [Integer] -> Integer
thrd (x:y:z:xs) = z

Snippet actions

CodShot user
CodShot user
Updated: 2026-05-07 15:42
Public snippets
0
Forks
CodShot AI Help
Ask about CodShot features, plans, workspace, AI limits, referrals, and public help topics.
Hi! I can help you understand how CodShot works. What would you like to know?
For account-specific or sensitive issues, please open a support ticket. Open support