CIS 252 Introduction to Computer Science Section M013: Exam 1 (Pink) February 22, Points Possible

Size: px
Start display at page:

Download "CIS 252 Introduction to Computer Science Section M013: Exam 1 (Pink) February 22, Points Possible"

Transcription

1 Name: CIS 252 Introduction to Computer Science Section M013: February 22, 2018 Question Points Possible Points Received Total 100 Instructions: 1. This exam is a closed-book (and closed-notes) exam. 2. Legibility counts! Make sure we can read (and find!) your answers. If you need more room for an answer than that given, use the back side of the pages. Be sure to leave a note indicating where the answer is. 3. This test should have 8 pages (including this cover sheet). Let us know now if your copy does not have the correct number of pages. 4. Unless specified otherwise, you may use any built-in Haskell function you want, as long as you use it correctly (including using its correct name). The last page includes a list of some common Haskell functions and their types.

2 1. (34 points) Suppose that the following definitions are made: import Data.Char zone :: [(Int,Char)] zone = [(23, g ), (3, m ), (4, d ), (2, k ), (13, e )] poach :: [a] -> Float poach [] = 6.1 poach (x:z) = 3.2 poach (w:y:ts) = 4.0 force :: a -> (a,integer) force x = (x,17) mark :: Int -> [(Int,Char)] -> String mark r [] = [] mark r ((d,m):rest) r == d = m : mark i rest otherwise = "##" handler :: Integer -> Bool handler v = v < 7 odd v (a) (22 points) Give the values of the following expressions. (i). [51,54..59] (ii). islower? (iii). handler 2 (iv). 7:1:9:[] (v). zip [8,2,6] [400,300,200,100] (vi). poach [3,63,125] (vii). [ q (i,q) <- zone, even i] (viii). mark 23 zone (ix). concat [[4,5],[1,2,7],[],[6,2,1]]

3 (x). div 21 4 (xi). length [[2,4],[9,13],[7],[],[8,6]] (b) (12 points) Give the types of the following expressions (e.g., the type of [False] is [Bool]). (i). (poach [3.5], odd 8) (ii). force Q (iii). [ S, U ]:[] (iv). fst (length [2,2,2],handler 13) (v). [ force a (a,b) <- zone] (vi). unzip zone import Data.Char zone :: [(Int,Char)] zone = [(23, g ), (3, m ), (4, d ), (2, k ), (13, e )] poach :: [a] -> Float poach [] = 6.1 poach (x:z) = 3.2 poach (w:y:ts) = 4.0 force :: a -> (a,integer) force x = (x,17) mark :: Int -> [(Int,Char)] -> String mark r [] = [] mark r ((d,m):rest) r == d = m : mark r rest otherwise = "##" handler :: Integer -> Bool handler v = v < 7 odd v

4 2. (16 points) Consider the following (partial) file system hierarchy, where the numeric labels associated with directories are intended merely as identification for the questions that follow: 1 / 2 dei/ 8 missions/ 9 owca/ 3 doof/ 4 norm/ 10 carl/ 11 mm/ 12 perry/ 13 silentg/ 5 backstory/ 6 inators/ 7 plans/ 14 family/ 15 gear/ 16 missions/ 17 plans/ For each question that follows, suppose that Heinz s home directory is directory #3 and that his current working directory is directory #15. (a) If Heinz executed the Unix command pwd, what would be the system s response? (b) If Heinz executed the Unix command cd.., which directory would become his current working directory? (Give the number of the directory, not the name.) (c) If Heinz executed the Unix command cd ~/.., which directory would become his current working directory? (Give the number of the directory, not the name.) (continued on next page)

5 As before, suppose that Heinz s home directory is directory #3 and that his current working directory is directory #15. For each of the following tasks, give a single Unix command would allow Heinz to complete the task. You should assume that each task is completed independently of the others (i.e., changes made in one task do not affect other tasks). (d) List all files (including hidden files) in directory #14, but do not include info about file permissions and creation dates (e) Create a subdirectory in directory #4 called tasks (f) Make a copy of the file agents (located in directory #13), placing it in directory #7 with the name blog (g) Delete the file duplic.pdf (located in directory #6) (h) Move the file kickball (located in directory #5) to directory #8 1 / 2 dei/ 8 missions/ 9 owca/ 3 doof/ 4 norm/ 10 carl/ 11 mm/ 12 perry/ 13 silentg/ 5 backstory/ 6 inators/ 7 plans/ 14 family/ 15 gear/ 16 missions/ 17 plans/

6 3. (16 points) A gourmet pizza shops sells pizzas with a variety of premium and regular toppings: The base price for a large pizza is $18; the base price for a small pizza is $10. Each premium topping costs $4 for a large pizza and $3 for a small pizza. Each regular topping costs $3 for a large pizza and $2 for a small pizza. To attract new customers, the shop is currently running a special promotion: the first three toppings on large pizzas are free, but additional toppings are charged at the usual prices. Under this deal, premium toppings are discounted first (see examples below). Here are examples of how the pricing works: Ana orders a small pizza with two premium toppings and five regular toppings. She pays $26 ($10 for small pizza, $6 for the premium toppings, and $10 for the regular toppings). Blake buys a large pizza with two premium toppings and five regular toppings. The special promotion makes three toppings (two premium and one regular) free. The remaining four regular toppings cost $12, and hence he pays $30 in total. Cora buys a large pizza with four premium toppings and one regular topping. Because of the special promotion, she receives three premium toppings for free. Thus, she pays $25 ($18 for large pizza, $4 for one premium topping, and $3 for one regular topping). Dale buys a large pizza with one premium topping. Because of the special promotion, the topping is free. Thus, he pays $18. Your task: Write a Haskell function cost :: Bool -> Int -> Int -> Int such that cost large prem reg calculates the cost (in dollars) of a customer s pizza purchase, where prem indicates the number of premium toppings, reg indicates the number of regular toppings, and large is true precisely when a large pizza is ordered. If either prem or reg is negative, the function should return 0. For example, your function should have the following behavior: *Main> cost False *Main> cost True *Main> cost True

7 4. (10 points) Write a Haskell function interleave :: String -> String -> String such that interleave cs ds returns the string obtained by interleaving the elements of cs and ds; the resulting string should be twice the length of the shorter of the two strings. For example, the function should have the following behavior: *Main> interleave "abcde" "XYZ" "axbycz" *Main> interleave "..." "ABCDE" ".A.B.C.D" 5. (12 points) Write a Haskell function condense :: [Integer] -> [Integer] such that condense xs returns the list obtained by removing all consecutive duplicate entries in the list xs; non-consecutive duplicates are left alone. For example, the function should have the following behavior: *Main> condense [3,0,0,0,21,3,3,7,1,1,1,0] [3,0,21,3,7,1,0]

8 6. (12 points) Write a Haskell function getnth :: [a] -> Integer -> a -> a such that getnth xs k backup returns the k-th element of xs; if the list does not have a k-th element (either because the list is too short or k is nonpositive), then backup is returned instead. Do not use the built-in operator!! for this question. For example: *Main> getnth "cis 252" 3 A s *Main> getnth "cis 252" 13 A A *Main> getnth "cis 252" (-2) A A Types of some standard Haskell functions (:) :: a -> [a] -> [a] (++) :: [a] -> [a] -> [a] (&&), ( ) :: Bool -> Bool -> Bool concat :: [[a]] -> [a] even, odd :: Integral a => a -> Bool length :: [a] -> Int isalpha, isupper, islower :: Char -> Bool toupper, tolower :: Char -> Char fst :: (a,b) -> a snd :: (a,b) -> b zip :: [a] -> [b] -> [(a,b)] unzip :: [(a,b)] -> ([a],[b])

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions.

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions. 1. (34 points) Suppose that the following definitions are made: import Data.Char zone :: [(Int,Char)] zone = [(23, g ), (3, m ), (4, d ), (2, k ), (13, e )] poach :: [a] -> Float poach [] = 6.1 poach (x:z)

More information

CIS 252 Introduction to Computer Science Section M013: Exam 1 (Blue) February 22, Points Possible

CIS 252 Introduction to Computer Science Section M013: Exam 1 (Blue) February 22, Points Possible Name: CIS 252 Introduction to Computer Science Section M013: February 22, 2018 Question Points Possible Points Received 1 34 2 16 3 16 4 10 5 12 6 12 Total 100 Instructions: 1. This exam is a closed-book

More information

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions.

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions. 1. (34 points) Suppose that the following definitions are made: import Data.Char field :: [(Char,Integer)] field = [( e,12), ( a,3), ( k,5),( t,2)] huck :: [a] -> Int huck [] = 55 huck (x:z) = 81 huck

More information

CIS 252 Introduction to Computer Science Section M019: Exam 1 (Yellow) February 22, Points Possible

CIS 252 Introduction to Computer Science Section M019: Exam 1 (Yellow) February 22, Points Possible Name: CIS 252 Introduction to Computer Science Section M019: February 22, 2018 Question Points Possible Points Received 1 34 2 16 3 16 4 10 5 12 6 12 Total 100 Instructions: 1. This exam is a closed-book

More information

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions.

1. (34 points) Suppose that the following definitions are made: (a) (22 points) Give the values of the following expressions. 1. (34 points) Suppose that the following definitions are made: import Data.Char ice :: [(Char,Integer)] ice = [( d,12), ( m,3), ( j,5),( f,2)] curl :: [a] -> String curl [] = "skip" curl (x:z) = "vice"

More information

CIS 252 Introduction to Computer Science Exam 1 (Green) October 3, Points Possible

CIS 252 Introduction to Computer Science Exam 1 (Green) October 3, Points Possible Name: CIS 252 Introduction to Computer Science October 3, 2018 Question Points Possible Points Received 1 34 2 16 3 18 4 10 5 10 6 12 Total 100 Instructions: 1. This exam is a closed-book (and closed-notes)

More information

CIS 252 Introduction to Computer Science Section M013: Exam 2 (Green) March 29, Points Possible

CIS 252 Introduction to Computer Science Section M013: Exam 2 (Green) March 29, Points Possible Name: CIS 252 Introduction to Computer Science Section M013: March 29, 2018 Question Points Possible Points Received 1 18 2 18 3 12 4 6 5 34 6 12 Total 100 Instructions: 1. This exam is a closed-book (and

More information

2. (18 points) Suppose that the following definitions are made (same as in Question 1):

2. (18 points) Suppose that the following definitions are made (same as in Question 1): 1. (18 points) Suppose that the following definitions are made: import Data.Char data Roadway = Avenue Char Lane [Integer] String Parkway Float Int doze :: Integer -> Bool doze m = even m m > 10 dream

More information

2. (18 points) Suppose that the following definitions are made (same as in Question 1):

2. (18 points) Suppose that the following definitions are made (same as in Question 1): 1. (18 points) Suppose that the following definitions are made: import Data.Char data Field = Pasture Char Lawn Integer Float Meadow String [Integer] gaze :: Integer -> Bool gaze m = odd m && m < 10 wonder

More information

2. (18 points) Suppose that the following definitions are made (same as in Question 1):

2. (18 points) Suppose that the following definitions are made (same as in Question 1): 1. (18 points) Suppose that the following definitions are made: import Data.Char data Avenue = Court Char Road String [Integer] Street Int Float snooze :: Int -> Bool snooze m = even m m < 5 slumber ::

More information

Standard prelude. Appendix A. A.1 Classes

Standard prelude. Appendix A. A.1 Classes Appendix A Standard prelude In this appendix we present some of the most commonly used definitions from the standard prelude. For clarity, a number of the definitions have been simplified or modified from

More information

PROGRAMMING IN HASKELL. Chapter 5 - List Comprehensions

PROGRAMMING IN HASKELL. Chapter 5 - List Comprehensions PROGRAMMING IN HASKELL Chapter 5 - List Comprehensions 0 Set Comprehensions In mathematics, the comprehension notation can be used to construct new sets from old sets. {x 2 x {1...5}} The set {1,4,9,16,25}

More information

CS 320: Concepts of Programming Languages

CS 320: Concepts of Programming Languages CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 06: Useful Haskell Syntax, HO Programming Continued o Goodbye to Bare Bones Haskell: Built-in

More information

Haskell Programs. Haskell Fundamentals. What are Types? Some Very Basic Types. Types are very important in Haskell:

Haskell Programs. Haskell Fundamentals. What are Types? Some Very Basic Types. Types are very important in Haskell: Haskell Programs We re covering material from Chapters 1-2 (and maybe 3) of the textbook. Haskell Fundamentals Prof. Susan Older A Haskell program is a series of comments and definitions. Each comment

More information

Informatics 1 Functional Programming Lecture 5. Function properties. Don Sannella University of Edinburgh

Informatics 1 Functional Programming Lecture 5. Function properties. Don Sannella University of Edinburgh Informatics 1 Functional Programming Lecture 5 Function properties Don Sannella University of Edinburgh Part I Booleans and characters Boolean operators not :: Bool -> Bool (&&), ( ) :: Bool -> Bool ->

More information

CSc 520. Principles of Programming Languages 11: Haskell Basics

CSc 520. Principles of Programming Languages 11: Haskell Basics CSc 520 Principles of Programming Languages 11: Haskell Basics Christian Collberg Department of Computer Science University of Arizona collberg@cs.arizona.edu Copyright c 2005 Christian Collberg April

More information

CIS 252 Introduction to Computer Science Section M013: Exam 3 (Blue) April 26, Points Possible

CIS 252 Introduction to Computer Science Section M013: Exam 3 (Blue) April 26, Points Possible Name: CIS 252 Introduction to Computer Science Section M013: April 26, 2018 Question Points Possible Points Received 1 18 2 20 3 12 4 14 5 24 6 12 Total 100 Instructions: 1. This exam is a closed-book

More information

CSc 372. Comparative Programming Languages. 4 : Haskell Basics. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 4 : Haskell Basics. Department of Computer Science University of Arizona 1/40 CSc 372 Comparative Programming Languages 4 : Haskell Basics Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/40 The Hugs Interpreter The

More information

CSc 372 Comparative Programming Languages. 4 : Haskell Basics

CSc 372 Comparative Programming Languages. 4 : Haskell Basics CSc 372 Comparative Programming Languages 4 : Haskell Basics Christian Collberg Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2011 Christian Collberg August 23, 2011

More information

A general introduction to Functional Programming using Haskell

A general introduction to Functional Programming using Haskell A general introduction to Functional Programming using Haskell Matteo Rossi Dipartimento di Elettronica e Informazione Politecnico di Milano rossi@elet.polimi.it 1 Functional programming in a nutshell

More information

EDAF40. 2nd June :00-19:00. WRITE ONLY ON ONE SIDE OF THE PAPER - the exams will be scanned in and only the front/ odd pages will be read.

EDAF40. 2nd June :00-19:00. WRITE ONLY ON ONE SIDE OF THE PAPER - the exams will be scanned in and only the front/ odd pages will be read. EDAF40 2nd June 2017 14:00-19:00 WRITE ONLY ON ONE SIDE OF THE PAPER - the exams will be scanned in and only the front/ odd pages will be read. DO NOT WRITE WITH OTHER COLOUR THAN BLACK - coloured text

More information

Lecture 2: List algorithms using recursion and list comprehensions

Lecture 2: List algorithms using recursion and list comprehensions Lecture 2: List algorithms using recursion and list comprehensions Søren Haagerup Department of Mathematics and Computer Science University of Southern Denmark, Odense September 12, 2017 Expressions, patterns

More information

Introduction to Programming: Lecture 6

Introduction to Programming: Lecture 6 Introduction to Programming: Lecture 6 K Narayan Kumar Chennai Mathematical Institute http://www.cmi.ac.in/~kumar 28 August 2012 Example: initial segments Write a Haskell function initsegs which returns

More information

A tour of the Haskell Prelude

A tour of the Haskell Prelude A tour of the Haskell Prelude Bernie Pope 2001 1 Haskell The Haskell language was conceived during a meeting held at the 1987 Functional Programming and Computer Architecture conference (FPCA 87). At the

More information

It is better to have 100 functions operate one one data structure, than 10 functions on 10 data structures. A. Perlis

It is better to have 100 functions operate one one data structure, than 10 functions on 10 data structures. A. Perlis Chapter 14 Functional Programming Programming Languages 2nd edition Tucker and Noonan It is better to have 100 functions operate one one data structure, than 10 functions on 10 data structures. A. Perlis

More information

Functional Programming and Haskell

Functional Programming and Haskell Functional Programming and Haskell Tim Dawborn University of Sydney, Australia School of Information Technologies Tim Dawborn Functional Programming and Haskell 1/22 What are Programming Paradigms? A programming

More information

CSCE 314 Programming Languages. Monadic Parsing

CSCE 314 Programming Languages. Monadic Parsing CSCE 314 Programming Languages Monadic Parsing Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a string of characters (or a set of tokens) as input and determines its syntactic structure.

More information

Custom Forms and Products

Custom Forms and Products Custom Forms and Products What is a Custom Form? A Custom Form is a form that is created to collect added information. It is often necessary to collect added information. A custom form can be used on it

More information

Programming in Haskell Aug-Nov 2015

Programming in Haskell Aug-Nov 2015 Programming in Haskell Aug-Nov 2015 LECTURE 5 AUGUST 18, 2015 S P SURESH CHENNAI MATHEMATICAL INSTITUTE The datatype Char Values are written with single quotes a, 3, %, #, Character symbols stored in a

More information

CSCE 314 Programming Languages. Monadic Parsing

CSCE 314 Programming Languages. Monadic Parsing CSCE 314 Programming Languages Monadic Parsing Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a string of characters (or a set of tokens) as input and determines its syntactic structure.

More information

CSCE 314 Programming Languages. Functional Parsers

CSCE 314 Programming Languages. Functional Parsers CSCE 314 Programming Languages Functional Parsers Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a text (set of tokens) and determines its syntactic structure. String or [Token]

More information

(ii) Define a function ulh that takes a list xs, and pairs each element with all other elements in xs.

(ii) Define a function ulh that takes a list xs, and pairs each element with all other elements in xs. EXAM FUNCTIONAL PROGRAMMING Tuesday the 1st of October 2016, 08.30 h. - 10.30 h. Name: Student number: Before you begin: Do not forget to write down your name and student number above. If necessary, explain

More information

PROGRAMMING IN HASKELL. Chapter 2 - First Steps

PROGRAMMING IN HASKELL. Chapter 2 - First Steps PROGRAMMING IN HASKELL Chapter 2 - First Steps 0 The Hugs System Hugs is an implementation of Haskell 98, and is the most widely used Haskell system; The interactive nature of Hugs makes it well suited

More information

1 The smallest free number

1 The smallest free number 1 The smallest free number Introduction Consider the problem of computing the smallest natural number not in a given finite set X of natural numbers. The problem is a simplification of a common programming

More information

Haskell through HUGS THE BASICS

Haskell through HUGS THE BASICS Haskell through HUGS THE BASICS FP for DB Basic HUGS 1 Algorithmic Imperative Languages variables assignment if condition then action1 else action2 loop block while condition do action repeat action until

More information

Informatics 1 Functional Programming 19 Tuesday 23 November IO and Monads. Philip Wadler University of Edinburgh

Informatics 1 Functional Programming 19 Tuesday 23 November IO and Monads. Philip Wadler University of Edinburgh Informatics 1 Functional Programming 19 Tuesday 23 November 2010 IO and Monads Philip Wadler University of Edinburgh The 2010 Informatics 1 Competition Sponsored by Galois (galois.com) List everyone who

More information

CSc 372. Comparative Programming Languages. 15 : Haskell List Comprehension. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 15 : Haskell List Comprehension. Department of Computer Science University of Arizona 1/20 CSc 372 Comparative Programming Languages 15 : Haskell List Comprehension Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/20 List Comprehensions

More information

Introduction to Programming and 4Algorithms Abstract Types. Uwe R. Zimmer - The Australian National University

Introduction to Programming and 4Algorithms Abstract Types. Uwe R. Zimmer - The Australian National University Introduction to Programming and 4Algorithms 2015 Uwe R. Zimmer - The Australian National University [ Thompson2011 ] Thompson, Simon Haskell - The craft of functional programming Addison Wesley, third

More information

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions:

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions: CS 170 Exam 2 Version: A Spring 2016 Name (as in OPUS) (print): Section: Seat Assignment: Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do

More information

PROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions

PROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions PROGRAMMING IN HASKELL CS-205 - Chapter 6 - Recursive Functions 0 Introduction As we have seen, many functions can naturally be defined in terms of other functions. factorial :: Int Int factorial n product

More information

Informatics 1 Functional Programming Lectures 15 and 16. IO and Monads. Don Sannella University of Edinburgh

Informatics 1 Functional Programming Lectures 15 and 16. IO and Monads. Don Sannella University of Edinburgh Informatics 1 Functional Programming Lectures 15 and 16 IO and Monads Don Sannella University of Edinburgh Part I The Mind-Body Problem The Mind-Body Problem Part II Commands Print a character putchar

More information

Honors Introduction to C (COP 3223H) Program 5 Pizza Shack Inventory and Finances

Honors Introduction to C (COP 3223H) Program 5 Pizza Shack Inventory and Finances Honors Introduction to C (COP 3223H) Program 5 Pizza Shack Inventory and Finances Objective To give students practice writing a program with structs, functions and arrays, all interleaved. The Problem:

More information

Functional Programming TDA 452, DIT 142

Functional Programming TDA 452, DIT 142 Chalmers Göteborgs Universitet 2016-04-07 Examiner: David Sands dave@chalmers.se. Answering questions on the day of the exam (at approx 15.00): Gregoire Detrez (tel: 073 55 69 550) and at other times by

More information

INTI COLLEGE MALAYSIA

INTI COLLEGE MALAYSIA CSC 107 (F) / Page 1 of 6 INTI COLLEGE MALAYSIA COMPUTING AND INFORMATION TECHNOLOGY CERTIFICATE CSC 107 : PROGRAMMING IN C (BASED ON AB) FINAL EXAMINATION : AUGUST 2000 SESSION This paper consists of

More information

Haskell Modules. Input and Output. Urtė Zubkaitė

Haskell Modules. Input and Output. Urtė Zubkaitė Haskell Modules. Input and Output Urtė Zubkaitė Modules in Haskell A Haskell program is a collection of modules where the main module loads up the other modules and then uses the functions defined in them

More information

CITS3211 FUNCTIONAL PROGRAMMING. 7. Lazy evaluation and infinite lists

CITS3211 FUNCTIONAL PROGRAMMING. 7. Lazy evaluation and infinite lists CITS3211 FUNCTIONAL PROGRAMMING 7. Lazy evaluation and infinite lists Summary: This lecture introduces lazy evaluation and infinite lists in functional languages. cs123 notes: Lecture 19 R.L. While, 1997

More information

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Haskell Functions

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Haskell Functions 1 CSCE 314: Programming Languages Dr. Flemming Andersen Haskell Functions 2 Outline Defining Functions List Comprehensions Recursion 3 Conditional Expressions As in most programming languages, functions

More information

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions:

CS 170 Exam 2. Version: A Spring Name (as in OPUS) (print): Instructions: CS 170 Exam 2 Version: A Spring 2016 Name (as in OPUS) (print): Section: Seat Assignment: Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do

More information

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Functional Parsers

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Functional Parsers 1 CSCE 314: Programming Languages Dr. Flemming Andersen Functional Parsers What is a Parser? A parser is a program that takes a text (set of tokens) and determines its syntactic structure. String or [Token]

More information

Informatics 1 Functional Programming Lectures 13 and 14 Monday 11 and Tuesday 12 November Type Classes. Don Sannella University of Edinburgh

Informatics 1 Functional Programming Lectures 13 and 14 Monday 11 and Tuesday 12 November Type Classes. Don Sannella University of Edinburgh Informatics 1 Functional Programming Lectures 13 and 14 Monday 11 and Tuesday 12 November 2013 Type Classes Don Sannella University of Edinburgh Mock exam Slots and rooms have now been assigned Mon 18

More information

Final Exam Review (Revised 3/16) Math MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Final Exam Review (Revised 3/16) Math MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Final Exam Review (Revised 3/16) Math 0001 Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Evaluate. 1) 1 14 1) A) 1 B) 114 C) 14 D) undefined

More information

Functional Programming TDA 452, DIT 142

Functional Programming TDA 452, DIT 142 Chalmers Göteborgs Universitet 2018-01-11 Examiner: Thomas Hallgren, D&IT, Answering questions at approx 15.00 (or by phone) Functional Programming TDA 452, DIT 142 2018-01-11 14.00 18.00 Samhällsbyggnad

More information

COMPUTER SCIENCE 123. Foundations of Computer Science. 5. Strings

COMPUTER SCIENCE 123. Foundations of Computer Science. 5. Strings COMPUTER SCIENCE 123 Foundations of Computer Science 5. Strings Summary: This lecture introduces strings in Haskell. You should also have: Tutorial sheet 2 Solutions to Tutorial sheet 1 Lab sheet 3 Solutions

More information

Logical Methods in... using Haskell Getting Started

Logical Methods in... using Haskell Getting Started Logical Methods in... using Haskell Getting Started Jan van Eijck May 4, 2005 Abstract The purpose of this course is to teach a bit of functional programming and logic, and to connect logical reasoning

More information

Algebra I Final Test Review Sem 2 Ch 4, 5, 8, 9. Simplify each expression Solve each equation or inequality for x.

Algebra I Final Test Review Sem 2 Ch 4, 5, 8, 9. Simplify each expression Solve each equation or inequality for x. Simplify each expression. 1) xy 3x 6xy x 3y ) 3x 4y x 5x 9y 3) 4( x 3) 8x 1 4) 5x 3(x 4) 1x 8 Solve each equation or inequality for x. 5) 6x 8 44 6) ( x 4) 5x 7 7) 5x 3( x 4) 4x 16 8) x 4 3 x 9) 3 ( x

More information

Programming Languages ML Programming Project Due 9/28/2001, 5:00 p.m.

Programming Languages ML Programming Project Due 9/28/2001, 5:00 p.m. Programming Languages ML Programming Project Due 9/28/2001, 5:00 p.m. Functional Suite Instead of writing a single ML program, you are going to write a suite of ML functions to complete various tasks.

More information

i) Natural numbers: Counting numbers, i.e, 1, 2, 3, 4,. are called natural numbers.

i) Natural numbers: Counting numbers, i.e, 1, 2, 3, 4,. are called natural numbers. Chapter 1 Integers Types of Numbers i) Natural numbers: Counting numbers, i.e, 1, 2, 3, 4,. are called natural numbers. ii) Whole numbers: Counting numbers and 0, i.e., 0, 1, 2, 3, 4, 5,.. are called whole

More information

Your Cart User Manual v3.6

Your Cart User Manual v3.6 Your Cart User Manual v3.6 2 Your Cart User Manual v3.6 Table of Contents Foreword 0 7 Part I Getting Started Overview 11 Part II Categories & Products 1 Manage Categories... Overview 11 Add a New... Category

More information

CDA 3103 Computer Organization Exam 1 (Sep. 22th, 2014)

CDA 3103 Computer Organization Exam 1 (Sep. 22th, 2014) CDA 3103 Computer Organization Exam 1 (Sep. 22th, 2014) Name: USF ID: Problem Points Score 1 10 2 10 3 15 4 15 5 10 6 20 otal 80 Exam Rules Use the back of the exam paper as necessary. But indicate clearly

More information

EXAM Microsoft MTA Software Development Fundamentals. Buy Full Product.

EXAM Microsoft MTA Software Development Fundamentals. Buy Full Product. Microsoft EXAM - 98-361 Microsoft MTA Software Development Fundamentals Buy Full Product http://www.examskey.com/98-361.html Examskey Microsoft 98-361 exam demo product is here for you to test the quality

More information

CSE 131 Introduction to Computer Science Fall 2016 Exam I. Print clearly the following information:

CSE 131 Introduction to Computer Science Fall 2016 Exam I. Print clearly the following information: CSE 131 Introduction to Computer Science Fall 2016 Given: 29 September 2016 Exam I Due: End of Exam Session This exam is closed-book, closed-notes, no electronic devices allowed The exception is the "sage

More information

University of Swaziland Department Of Computer Science Supplementary Examination JULY 2012

University of Swaziland Department Of Computer Science Supplementary Examination JULY 2012 University of Swaziland Department Of Computer Science Supplementary Examination JULY 2012 Title ofpaper: Course number: Time Allowed: Cunder Unix CS344 Three (3) hours Instructions: Answer question 1.

More information

Functional Programming I *** Functional Programming and Interactive Theorem Proving. Ulrich Berger Michaelmas Term 2006

Functional Programming I *** Functional Programming and Interactive Theorem Proving. Ulrich Berger Michaelmas Term 2006 Functional Programming I *** Functional Programming and Interactive Theorem Proving Ulrich Berger Michaelmas Term 2006 2 *** Room 306 (Faraday Tower) Phone 513380 Fax 295708 u.berger@swansea.ac.uk http://www-compsci.swan.ac.uk/

More information

Haskell Types, Classes, and Functions, Currying, and Polymorphism

Haskell Types, Classes, and Functions, Currying, and Polymorphism 1 CSCE 314: Programming Languages Dr. Flemming Andersen Haskell Types, Classes, and Functions, Currying, and Polymorphism 2 Types A type is a collection of related values. For example, Bool contains the

More information

Haskell Types COMP360

Haskell Types COMP360 Haskell Types COMP360 No computer has ever been designed that is ever aware of what it's doing; but most of the time, we aren't either. Marvin Minsky Haskell Programming Assignment A Haskell programming

More information

A Sudoku Solver (1A) Richard Bird Implementation. Young Won Lim 11/15/16

A Sudoku Solver (1A) Richard Bird Implementation. Young Won Lim 11/15/16 A Sudoku Solver (1A) Richard Bird Implementation Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

More information

Administration of Symantec Backup Exec 12 fo Windows Server Exam.

Administration of Symantec Backup Exec 12 fo Windows Server Exam. SYMANTEC 250-312 Administration of Symantec Backup Exec 12 fo Windows Server Exam TYPE: DEMO http://www.examskey.com/250-312.html Examskey SYMANTEC 250-312 exam demo product is here for you to test the

More information

INTRODUCTION TO HASKELL

INTRODUCTION TO HASKELL INTRODUCTION TO HASKELL PRINCIPLES OF PROGRAMMING LANGUAGES Norbert Zeh Winter 2018 Dalhousie University 1/81 HASKELL: A PURELY FUNCTIONAL PROGRAMMING LANGUAGE Functions are first-class values: Can be

More information

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total.

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Name: ID: Problem 1) (8 points) For the following code segment, what are the values of i, j, k, and d, after the segment

More information

Functional Programming for Logicians - Lecture 1

Functional Programming for Logicians - Lecture 1 Functional Programming for Logicians - Lecture 1 Functions, Lists, Types Malvin Gattinger 4 June 2018 module L1 where Introduction Who is who Course website: https://malv.in/2018/funcproglog/ Malvin Gattinger

More information

Abstract Types, Algebraic Types, and Type Classes

Abstract Types, Algebraic Types, and Type Classes Informatics 1 Functional Programming Lectures 13 and 14 Monday 9 and Tuesday 10 November 2009 Abstract Types, Algebraic Types, and Type Classes Philip Wadler University of Edinburgh Reminders Tutorial

More information

GHCi: Getting started (1A) Young Won Lim 5/26/17

GHCi: Getting started (1A) Young Won Lim 5/26/17 GHCi: Getting started (1A) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2

More information

Pinnacle Cart User Manual v3.6.3

Pinnacle Cart User Manual v3.6.3 Pinnacle Cart User Manual v3.6.3 2 Pinnacle Cart User Manual v3.6.3 Table of Contents Foreword 0 Part I Getting Started Overview 7 Part II Categories & Products 11 1 Manage... Categories Overview 11 Add

More information

Table of Contents. I) Project Planning. User Analysis. III) Tasks Analysis. IV) Storyboard. V) Function Design. VI) Scenario Design.

Table of Contents. I) Project Planning. User Analysis. III) Tasks Analysis. IV) Storyboard. V) Function Design. VI) Scenario Design. FINAL REPORT Table of Contents I) Project Planning II) User Analysis III) Tasks Analysis IV) Storyboard V) Function Design VI) Scenario Design VII) Database VIII) Usability Questionnaire IX) System Version

More information

CS 1063 Introduction to Computer Programming Midterm Exam 2 Section 1 Sample Exam

CS 1063 Introduction to Computer Programming Midterm Exam 2 Section 1 Sample Exam Seat Number Name CS 1063 Introduction to Computer Programming Midterm Exam 2 Section 1 Sample Exam This is a closed book exam. Answer all of the questions on the question paper in the space provided. If

More information

today cs3157-fall2002-sklar-lect05 1

today cs3157-fall2002-sklar-lect05 1 today homework #1 due on monday sep 23, 6am some miscellaneous topics: logical operators random numbers character handling functions FILE I/O strings arrays pointers cs3157-fall2002-sklar-lect05 1 logical

More information

1. (18 points) Suppose that the following definitions are made: Give the values of the following expressions.

1. (18 points) Suppose that the following definitions are made: Give the values of the following expressions. 1. (18 points) Suppose that the following definitions are made: data Thing = Pumpkin [Float] Bat (Bool,Int) Char trick :: Integer -> Thing -> Integer trick k (Pumpkin (a:_:cs)) = k + 500 trick k _ = 44

More information

CSCE 314 Programming Languages

CSCE 314 Programming Languages CSCE 314 Programming Languages Haskell: Higher-order Functions Dr. Hyunyoung Lee 1 Higher-order Functions A function is called higher-order if it takes a function as an argument or returns a function as

More information

The Caesar Cipher Informatics 1 Functional Programming: Tutorial 3

The Caesar Cipher Informatics 1 Functional Programming: Tutorial 3 The Caesar Cipher Informatics 1 Functional Programming: Tutorial 3 Heijltjes, Wadler Due: The tutorial of week 5 (23/24 Oct.) Reading assignment: Chapters 8 and 9 (pp. 135-166) Please attempt the entire

More information

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Fall 2012 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Prof. Gil Zussman due: Wed. 10/24/2012, 23:55 EST 1 Introduction In this programming assignment, you are

More information

Converting a Lowercase Letter Character to Uppercase (Or Vice Versa)

Converting a Lowercase Letter Character to Uppercase (Or Vice Versa) Looping Forward Through the Characters of a C String A lot of C string algorithms require looping forward through all of the characters of the string. We can use a for loop to do that. The first character

More information

Topic 5: Higher Order Functions

Topic 5: Higher Order Functions Topic 5: Higher Order Functions 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10,

More information

Topic 5: Higher Order Functions

Topic 5: Higher Order Functions Topic 5: Higher Order Functions 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10,

More information

Programming Language Concepts: Lecture 14

Programming Language Concepts: Lecture 14 Programming Language Concepts: Lecture 14 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 14, 11 March 2009 Function programming

More information

Shell CSCE 314 TAMU. Higher Order Functions

Shell CSCE 314 TAMU. Higher Order Functions 1 CSCE 314: Programming Languages Dr. Dylan Shell Higher Order Functions 2 Higher-order Functions A function is called higher-order if it takes a function as an argument or returns a function as a result.

More information

Lecture 1 August 9, 2017

Lecture 1 August 9, 2017 Programming in Haskell S P Suresh http://www.cmi.ac.in/~spsuresh Lecture 1 August 9, 2017 Administrative Mondays and Wednesdays at 9.10 am at Lecture Hall 6 Evaluation: Quizzes, 4 5 programming assignments,

More information

AIR FORCE SCHOOL,BAMRAULI COMPUTER SCIENCE (083) CLASS XI Split up Syllabus (Session ) Contents

AIR FORCE SCHOOL,BAMRAULI COMPUTER SCIENCE (083) CLASS XI Split up Syllabus (Session ) Contents AIR FORCE SCHOOL,BAMRAULI COMPUTER SCIENCE (083) CLASS XI Split up Syllabus (Session- 2017-18) Month July Contents UNIT 1: COMPUTER FUNDAMENTALS Evolution of computers; Basics of computer and its operation;

More information

Overview. Declarative Languages D7012E. Overloading. Overloading Polymorphism Subtyping

Overview. Declarative Languages D7012E. Overloading. Overloading Polymorphism Subtyping Overview Declarative Languages D7012E Lecture 4: The Haskell type system Fredrik Bengtsson / Johan Nordlander Overloading & polymorphism Type classes instances of type classes derived type classes Type

More information

Strings and Library Functions

Strings and Library Functions Unit 4 String String is an array of character. Strings and Library Functions A string variable is a variable declared as array of character. The general format of declaring string is: char string_name

More information

2 New Company Setup OBJECTIVES:

2 New Company Setup OBJECTIVES: 2 New Company Setup In Chapter 2 of Accounting Fundamentals with QuickBooks Online Essentials Edition, you will learn how to use the software to set up your business. New Company Setup includes selecting

More information

Conditions and Logical Expressions. C Programming

Conditions and Logical Expressions. C Programming Conditions and Logical Expressions C Programming Lecture Topics Using Relational and Logical Operators to Construct and Evaluate Logical Expressions If-Else Statements Flow of Control is Sequential unless

More information

COMPUTER SCIENCE (083)

COMPUTER SCIENCE (083) Roll No. Code : 112011-083-A Please check that this question paper contains 7 questions and 6 printed pages. CLASS-XI COMPUTER SCIENCE (083) Time Allowed : 3 Hrs. Maximum Marks : 70 General Instructions

More information

Split up Syllabus (Session )

Split up Syllabus (Session ) Split up Syllabus (Session- -17) COMPUTER SCIENCE (083) CLASS XI Unit No. Unit Name Marks 1 COMPUTER FUNDAMENTALS 10 2 PROGRAMMING METHODOLOGY 12 3 INTRODUCTION TO C++ 14 4 PROGRAMMING IN C++ 34 Total

More information

CS 440: Programming Languages and Translators, Spring 2019 Mon 2/4

CS 440: Programming Languages and Translators, Spring 2019 Mon 2/4 Haskell, Part 5 CS 440: Programming Languages and Translators, Spring 2019 Mon 2/4 More Haskell Miscellaneous topics Simple I/O, do blocks, actions Modules data vs type declaration Instances of classtypes

More information

Reviewing all Topics this term

Reviewing all Topics this term Today in CS161 Prepare for the Final Reviewing all Topics this term Variables If Statements Loops (do while, while, for) Functions (pass by value, pass by reference) Arrays (specifically arrays of characters)

More information

Programming Languages Fall 2013

Programming Languages Fall 2013 Programming Languages Fall 2013 Lecture 2: types Prof. Liang Huang huang@qc.cs.cuny.edu Recap of Lecture 1 functional programming vs. imperative programming basic Haskell syntax function definition lazy

More information

Computer Science 330 Assignment

Computer Science 330 Assignment Computer Science 330 Assignment Note: All questions are compulsory. The marks for each question are given at the same place. Max. Marks: 20 (ii) Write your name, enrolment number, AI name and subject etc.

More information

KENDRIYA VIDYALYA CLRI CHENNAI AUTUMN BREAK HOLIDAY HW MARKS QUESTIONS : DATA STRUCTURE

KENDRIYA VIDYALYA CLRI CHENNAI AUTUMN BREAK HOLIDAY HW MARKS QUESTIONS : DATA STRUCTURE KENDRIYA VIDYALYA CLRI CHENNAI AUTUMN BREAK HOLIDAY HW 8 MARKS QUESTIONS : DATA STRUCTURE. Write a function in C++ which accepts an integer array and its size as arguments and change all the even number

More information

Haskell Overview II (2A) Young Won Lim 8/23/16

Haskell Overview II (2A) Young Won Lim 8/23/16 (2A) Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published

More information

Shell CSCE 314 TAMU. Functions continued

Shell CSCE 314 TAMU. Functions continued 1 CSCE 314: Programming Languages Dr. Dylan Shell Functions continued 2 Outline Defining Functions List Comprehensions Recursion 3 A Function without Recursion Many functions can naturally be defined in

More information