در این پست بنا دارم کلیه مطالب ارائه شده به عنوان پروژه برنامه نویسی به زبان هسکل را که در 9 دی 93 در موسسه جهاد دانشگاهی ارائه نمودم را در اختیار دانشجویان و دانش پژوهان قرار میدهم. به امید اینکه به کار آید.
در ابتدا صورت سوال و نحوه پاسخگویی را دانلود کنید:


در بخش دیگر بد نیست پاروپوینت ارائه شده در این سیمینار را ببینید:

و از همه مهم تر به سراغ کدهای این پروژه را به صورت جداگانه ببینید و با فرمت hs دانلود کنید:
{-# OPTIONS_GHC -Wall #-}
module SAWARi where

-- Part one

-- Ex1
toDigits :: Integer -> [Integer]
toDigits x
| x > 0 = toDigits (div x 10) ++ [mod x 10]
| otherwise = []

toDigitsRev :: Integer -> [Integer]
toDigitsRev x
| x > 0 = reverse (toDigits x)
| otherwise = []

-- Ex2
doubleEveryOther :: [Integer] -> [Integer]
doubleEveryOther [] = []
doubleEveryOther (x:[]) =[x*2]
doubleEveryOther (x:[y]) = [x*2] ++ [y]
doubleEveryOther (x:y:xy) = [x*2] ++ [y] ++ doubleEveryOther xy

-- Ex3
sumDigits :: [Integer] -> Integer
sumDigits [] = 0
sumDigits (x:[]) = (mod x 10) + (div x 10)
sumDigits (x:xy) = ((mod x 10) + (div x 10)) + sumDigits xy


-- Ex4
validate :: Integer -> Bool
validate x = (mod (sumDigits (doubleEveryOther (toDigitsRev x))) 10) == 0

دانلود با فرمت hs:

در پایان از استادی عزیز درس طراحی و پیاده سازی زبان های برنامه سازی خانم طاهری فر تشکر میکنم که من را به انجام این پروژه و کسب این تجربه متفاوت ترغیب کردند.
علی سواری