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

Size: px
Start display at page:

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

Transcription

1 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" curl (w:y:ts) = "lead" sweep :: a -> (Float,a) sweep x = (1.0,x) freeze :: Integer -> [(Char,Integer)] -> String freeze i [] = [] freeze i ((w,p):rest) i == p = w : freeze i rest otherwise = "!!" hurry :: Int -> Bool hurry v = v > 100 even v (a) (22 points) Give the values of the following expressions. (i). 3:5:1:[] [3,5,1] (ii). div (iii). curl [1,10,100] "vice" (iv). hurry 18 True (v). [20,24..30] [20,24,28] (vi). isupper? False (vii). length [[2,4],[7],[],[8,6]] 4 (viii). [ r (r,m) <- ice, odd m] "mj" (ix). freeze 12 ice "d!!" (x). zip [3,6,10,12] [20,30,40] [(3,20),(6,30),(10,40)] (xi). concat [[2,7],[],[31,8,2]] [2,7,31,8,2] (b) (12 points) Give the types of the following expressions (e.g., the type of [False] is [Bool]).

2 (i). ["104","days"]:[] [[String]] (ii). (odd 6, length [3.5]) (Bool,Int) (iii). unzip ice ([Char],[Integer]) (iv). sweep Q (Float,Char) (v). fst (hurry 13,"sun") Bool (vi). [ sweep b (a,b) <- ice] [(Float,Integer)] 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 Perry s home directory is directory #12 and that his current working directory is directory #6. (a) If Perry executed the Unix command pwd, what would be the system s response? /dei/doof/inators (b) If Perry executed the Unix command cd.., which directory would become his current working directory? (Give the number of the directory, not the name.) #3 (c) If Perry executed the Unix command cd ~/.., which directory would become his current working directory? (Give the number of the directory, not the name.) #9

3 As before, suppose that Perry s home directory is directory #12 and that his current working directory is directory #6. For each of the following tasks, give a single Unix command would allow Perry 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 #7, but do not include info about file permissions and creation dates ls -a../plans (e) Create a subdirectory in directory #8 called canada mkdir /missions/canada (f) Make a copy of the file watch.pdf (located in directory #10), placing it in directory #15 with the name new.pdf cp /owca/carl/watch.pdf ~/gear/new.pdf (g) Delete the file vacation (located in directory #17) rm ~/plans/vacation (h) Move the file seattle (located in directory #16) to directory #13 mv ~/missions/seattle /owca/silentg 3. (16 points) A small burger shop sells burgers and fries (and not much else): The standard cost for a burger is $7, and the cost for an order of fries is $2. To attract new customers, the shop is currently running a promotion: for every two burgers purchased at the standard price, one order of fries is free. The shop also has a loyalty program for repeat customers. Customers who present their membership card at the time of purchase pay only $6 per burger (but they pay full price for all fries). Here are examples of how the pricing works: Ana wishes to purchase five burgers and three orders of fries. She does not present a membership card at the time of purchase. Because she s ordering five burgers, she is eligible for two free orders of fries. She therefore pays a total of $37 (five burgers at $7 apiece, plus $2 for the one non-free order of fries). Blake also wishes to purchase five burgers and three orders of fries, but he does present his membership card at the time of purchase. Because he s using his membership card, he is not eligible for any free orders of fries. He pays a total of $36 (five burgers at $6 apiece, plus three orders of fries at $2 apiece). Cora wishes to purchase three burgers and no fries, and she does not present a membership card at the time of purchase. Because she s ordering three burgers, she would be eligible for one free order of fries, but she doesn t use that benefit. She pays a total of $21 (three burgers at $7 apiece). Your task: Write a Haskell function

4 cost :: Integer -> Integer -> Bool -> Integer such that cost burgs fries card calculates the cost (in dollars) of a customer s food purchase, where burgs indicates the number of burgers purchased, fries indicates the number of orders of fries desired, and card is true precisely when the customer presents a membership card at the time of purchase. If either burgs or fries is negative, the function should return 0. For example, your function should have the following behavior: *Main> cost 5 3 False 37 *Main> cost 5 3 True 36 *Main> cost 3 0 False 21 *Main> cost 3 0 True 18 cost burgs fries card burgs < 0 fries < 0 = 0 card = burgs * 6 + fries * 2 otherwise = burgs * 7 + paidfries * 2 where paidfries = max 0 (fries - div burgs 2) cost card burgs fries burgs < 0 fries < 0 = 0 card = burgs * 6 + fries * 2 paidfries > 0 = burgs * 7 + paidfries * 2 otherwise = burgs * 7 where paidfries = fries - div burgs 2 4. (10 points) Write a Haskell function neighbors :: [a] -> [(a,a)] such that neighbors xs returns a list of all pairs of neighboring (i.e., adjacent) elements of xs. For example, the function should have the following behavior: *Main> neighbors [3,0,21,3,3,7,1] [(3,0),(0,21),(21,3),(3,3),(3,7),(7,1)] *Main> neighbors "cis252" [( c, i ),( i, s ),( s, 2 ),( 2, 5 ),( 5, 2 )] *Main> neighbors [3] [] neighbors (x:y:zs) = (x,y) : neighbors (y:zs) neighbors zs = [] -- handles [] and singletons

5 neighbors [] = [] neighbors (x:xs) = zip (x:xs) xs 5. (12 points) Write a Haskell function changefirst :: Char -> String -> String such that changefirst ch cs returns the string obtained by changing the first occurrence of ch in cs to # (everything else in the string stays the same). For example: *Main> changefirst 2 "cis 252" "cis #52" *Main> changefirst A "cis 252" "cis 252" Sample solution: changefirst ch [] = [] changefirst ch (c:cs) ch == c = # :cs otherwise = c: changefirst ch cs 6. (12 points) Write a Haskell function addsome :: Int -> [(Int,Char)] -> Int such that addsome k ps calculates the sum of the first k numbers paired with a lowercase letter in the list ps. (If there are fewer than k pairs with lowercase letters, then the function sums those that exist; when k is nonpositive, the function returns 0.) For example, the list [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] has four numbers paired with lowercase letters: 3, 6, -1, and 6. Thus, addsome has the following behavior: *Main> addsome 1 [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] 3 *Main> addsome 2 [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] 9 *Main> addsome 3 [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] 8 *Main> addsome 10 [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] 14 *Main> addsome (-2) [(5,! ),(3, b ),(6, w ),(8, Q ),(12, $ ),(-1, s ),(6, b )] 0 addsome k [] = 0 addsome k ((m,c):rest) k <= 0 = 0 islower c = m + addsome (k-1) rest otherwise = addsome k rest addsome k ps = sum (take k [m (m,c) <- ps, islower c])

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 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 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 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 (Pink) February 22, Points Possible

CIS 252 Introduction to Computer Science Section M013: Exam 1 (Pink) 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

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 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 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 Avenue = Court Char Road String [Integer] Street Int Float snooze :: Int -> Bool snooze m = even m m < 5 slumber ::

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

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

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

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

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

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

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

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

Introduction to the UNIX command line

Introduction to the UNIX command line Introduction to the UNIX command line Steven Abreu Introduction to Computer Science (ICS) Tutorial Jacobs University s.abreu@jacobs-university.de September 19, 2017 Overview What is UNIX? UNIX Shell Commands

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

Study Guide for Test 2

Study Guide for Test 2 Study Guide for Test 2 Topics: decisions, loops, arrays, c-strings, linux Material Selected from: Chapters 4, 5, 6, 7, 10.1, 10.2, 10.3, 10.4 Examples 14 33 Assignments 4 8 Any syntax errors are unintentional

More information

Unix Basics. Systems Programming Concepts

Unix Basics. Systems Programming Concepts Concepts Unix directories Important Unix file commands man, pwd, ls, mkdir, cd, cp, mv File and directory access rights through permission settings Using chmod to change permissions Other important Unix

More information

commandname flags arguments

commandname flags arguments Unix Review, additional Unix commands CS101, Mock Introduction This handout/lecture reviews some basic UNIX commands that you should know how to use. A more detailed description of this and other commands

More information

Chapter Two. Lesson A. Objectives. Exploring the UNIX File System and File Security. Understanding Files and Directories

Chapter Two. Lesson A. Objectives. Exploring the UNIX File System and File Security. Understanding Files and Directories Chapter Two Exploring the UNIX File System and File Security Lesson A Understanding Files and Directories 2 Objectives Discuss and explain the UNIX file system Define a UNIX file system partition Use the

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

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

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

Haskell An Introduction

Haskell An Introduction Haskell An Introduction What is Haskell? General purpose Purely functional No function can have side-effects IO is done using special types Lazy Strongly typed Polymorphic types Concise and elegant A First

More information

Haskell Overview II (2A) Young Won Lim 9/26/16

Haskell Overview II (2A) Young Won Lim 9/26/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

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 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

Chapter 4. Unix Tutorial. Unix Shell

Chapter 4. Unix Tutorial. Unix Shell Chapter 4 Unix Tutorial Users and applications interact with hardware through an operating system (OS). Unix is a very basic operating system in that it has just the essentials. Many operating systems,

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

Write code that simulates one roll of a 6-sided die and prints out the

Write code that simulates one roll of a 6-sided die and prints out the CS 101, Spring 2017 Mar 14th Exam 2 Name: Question 1. [5 points] If i = 4 and j = 2, what will print: true or false? Briefly explain. if ((i!= 3) (j < 2)) { printf("true"); else { printf("false"); Question

More information

Unix Filesystem. January 26 th, 2004 Class Meeting 2

Unix Filesystem. January 26 th, 2004 Class Meeting 2 Unix Filesystem January 26 th, 2004 Class Meeting 2 * Notes adapted by Christian Allgood from previous work by other members of the CS faculty at Virginia Tech Unix Filesystem! The filesystem is your interface

More information

Unix background. COMP9021, Session 2, Using the Terminal application, open an x-term window. You type your commands in an x-term window.

Unix background. COMP9021, Session 2, Using the Terminal application, open an x-term window. You type your commands in an x-term window. Unix background COMP9021, Session 2, 2016 1 Introduction Using the Terminal application, open an x-term window. You type your commands in an x-term window. Many commands take one or more arguments. Many

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

Case by Case. Chapter 3

Case by Case. Chapter 3 Chapter 3 Case by Case In the previous chapter, we used the conditional expression if... then... else to define functions whose results depend on their arguments. For some of them we had to nest the conditional

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

Essential Linux Shell Commands

Essential Linux Shell Commands Essential Linux Shell Commands Special Characters Quoting and Escaping Change Directory Show Current Directory List Directory Contents Working with Files Working with Directories Special Characters There

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

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

UNIX Tutorial One

UNIX Tutorial One 1.1 Listing files and directories ls (list) When you first login, your current working directory is your home directory. Your home directory has the same name as your user-name, for example, ee91ab, and

More information

ITEC2620 Introduction to Data Structures

ITEC2620 Introduction to Data Structures ITEC2620 Introduction to Data Structures Lecture 10a Grammars II Review Three main problems Derive a sentence from a grammar Develop a grammar for a language Given a grammar, determine if an input is valid

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical

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

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

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

Introduction to Programming, Aug-Dec 2006

Introduction to Programming, Aug-Dec 2006 Introduction to Programming, Aug-Dec 2006 Lecture 3, Friday 11 Aug 2006 Lists... We can implicitly decompose a list into its head and tail by providing a pattern with two variables to denote the two components

More information

SECTION 2: CODE REASONING + PROGRAMMING TOOLS. slides borrowed and adapted from Alex Mariakis and CSE 390a

SECTION 2: CODE REASONING + PROGRAMMING TOOLS. slides borrowed and adapted from Alex Mariakis and CSE 390a SECTION 2: CODE REASONING + PROGRAMMING TOOLS cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Reasoning about code Developer tools Eclipse and Java versions

More information

Unit 10. Linux Operating System

Unit 10. Linux Operating System 1 Unit 10 Linux Operating System 2 Linux Based on the Unix operating system Developed as an open-source ("free") alternative by Linux Torvalds and several others starting in 1991 Originally only for Intel

More information

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

Haskell Overview II (2A) Young Won Lim 8/9/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

Introduction to Algorithms and Programming I Lab. Exercises #1 Solution

Introduction to Algorithms and Programming I Lab. Exercises #1 Solution 60-140 Introduction to Algorithms and Programming I Lab. Exercises #1 Solution Objectives are to: 1. Learn basic Unix commands for preparing a source C program file, compiling a C program and executing

More information

Problem Grade Total

Problem Grade Total CS 101, Prof. Loftin: Final Exam, May 11, 2009 Name: All your work should be done on the pages provided. Scratch paper is available, but you should present everything which is to be graded on the pages

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

Introduction to Haskell

Introduction to Haskell Introduction to Haskell Matt Mullins Texas A&M Computing Society October 6, 2009 Matt Mullins (TACS) Introduction to Haskell October 6, 2009 1 / 39 Outline Introduction to Haskell Functional Programming

More information

CS1101: Lecture 5 Basic File Manipulation II

CS1101: Lecture 5 Basic File Manipulation II CS1101: Lecture 5 Dr. Barry O Sullivan b.osullivan@cs.ucc.ie Lecture Overview Basic File Manipulation Commands mkdir rmdir Two More Abbreviations? * Example using Wildcards More Basic File Manipulation

More information

Exercise 1 ( = 22 points)

Exercise 1 ( = 22 points) 1 Exercise 1 (4 + 3 + 4 + 5 + 6 = 22 points) The following data structure represents polymorphic lists that can contain values of two types in arbitrary order: data DuoList a b = C a (DuoList a b) D b

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

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

Watch out for the arrows. Recollecting Haskell, Part V. A start on higher types: Mapping, 1. A start on higher types: Mapping, 2.

Watch out for the arrows. Recollecting Haskell, Part V. A start on higher types: Mapping, 1. A start on higher types: Mapping, 2. Watch out for the arrows Recollecting Haskell, Part V Higher Types CIS 352/Spring 2018 Programming Languages January 30, 2018 1 / 28 2 / 28 A start on higher types: Mapping, 1 Mapping via list comprehension

More information

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. 1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. B. Outputs to the console a floating point number f1 in scientific format

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

CIS552: Advanced Programming

CIS552: Advanced Programming CIS552: Advanced Programming Handout 8 What is a Parser? A parser is a program that analyzes a piece of text to deine its structure (and, typically, returns a tree representing this structure). The World

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

MTU Computer Structure

MTU Computer Structure 1 MTU Computer Structure Home directory: h drive Same for Suns & PC s Location to store files Organize files by creating appropriate directories (folders) Subdirectory - any directory within in another

More information

History. Terminology. Opening a Terminal. Introduction to the Unix command line GNOME

History. Terminology. Opening a Terminal. Introduction to the Unix command line GNOME Introduction to the Unix command line History Many contemporary computer operating systems, like Microsoft Windows and Mac OS X, offer primarily (but not exclusively) graphical user interfaces. The user

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

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dk The most popular purely functional, lazy programming language Functional programming language : a program

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

Multiple Choice - 58 Questions - 10 of 15%

Multiple Choice - 58 Questions - 10 of 15% CST 8129 Ian Allen Fall 2005-1- 110 minutes Evaluation: Part I - 58 M/C Questions Name: Important Instructions 1. Read all the instructions and both sides (back and front) of all pages. 2. Manage your

More information

Question 1. [5 points] Circle and briefly explain the error(s) in the following code:

Question 1. [5 points] Circle and briefly explain the error(s) in the following code: CS 101, Spring 2017 Feb 14th Exam 1 Name: Question 1. [5 points] Circle and briefly explain the error(s) in the following code: double x, y; result = (x)(x) + y; printf("%lf\n", result); Question 2. [10

More information

You should see something like this, called the prompt :

You should see something like this, called the prompt : CSE 1030 Lab 1 Basic Use of the Command Line PLEASE NOTE this lab will not be graded and does not count towards your final grade. However, all of these techniques are considered testable in a labtest.

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

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

An introduction introduction to functional functional programming programming using usin Haskell

An introduction introduction to functional functional programming programming using usin Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dkau Haskell The most popular p purely functional, lazy programming g language Functional programming language : a program

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

Linux & Shell Programming 2014

Linux & Shell Programming 2014 Unit -1: Introduction to UNIX/LINUX Operating System Practical Practice Questions: Find errors (if any) otherwise write output or interpretation of following commands. (Consider default shell is bash shell.)

More information

CSc 372 Comparative Programming Languages

CSc 372 Comparative Programming Languages CSc 372 Comparative Programming Languages 8 : Haskell Function Examples Christian Collberg collberg+372@gmail.com Department of Computer Science University of Arizona Copyright c 2005 Christian Collberg

More information

Unit 13. Linux Operating System Debugging Programs

Unit 13. Linux Operating System Debugging Programs 1 Unit 13 Linux Operating System Debugging Programs COMPILATION 2 3 Editors "Real" developers use editors designed for writing code No word processors!! You need a text editor to write your code Eclipse,

More information

: Principles of Imperative Computation Victor Adamchik. Practice Exam - I

: Principles of Imperative Computation Victor Adamchik. Practice Exam - I 15-122 Practice Exam - I Page 1 of 10 15-122 : Principles of Imperative Computation Victor Adamchik Practice Exam - I Name: Andrew ID: Answer the questions in the space provided following each question.

More information

Introduction: The Unix shell and C programming

Introduction: The Unix shell and C programming Introduction: The Unix shell and C programming 1DT048: Programming for Beginners Uppsala University June 11, 2014 You ll be working with the assignments in the Unix labs. If you are new to Unix or working

More information

CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017

CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017 Name: USC NetID (e.g., ttrojan): CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017 There are 6 problems on the exam, with 55 points total available. There are 10 pages to the exam (5 pages

More information

Programming in Haskell Aug-Nov 2015

Programming in Haskell Aug-Nov 2015 Programming in Haskell Aug-Nov 2015 LECTURE 14 OCTOBER 1, 2015 S P SURESH CHENNAI MATHEMATICAL INSTITUTE Enumerated data types The data keyword is used to define new types data Bool = False True data Day

More information

CSc 372. Comparative Programming Languages. 8 : Haskell Function Examples. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 8 : Haskell Function Examples. Department of Computer Science University of Arizona 1/43 CSc 372 Comparative Programming Languages 8 : Haskell Function Examples Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg Functions over Lists

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

Mills HPC Tutorial Series. Linux Basics I

Mills HPC Tutorial Series. Linux Basics I Mills HPC Tutorial Series Linux Basics I Objectives Command Line Window Anatomy Command Structure Command Examples Help Files and Directories Permissions Wildcards and Home (~) Redirection and Pipe Create

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

Informatics 1 Functional Programming Lecture 7. Map, filter, fold. Don Sannella University of Edinburgh

Informatics 1 Functional Programming Lecture 7. Map, filter, fold. Don Sannella University of Edinburgh Informatics 1 Functional Programming Lecture 7 Map, filter, fold Don Sannella University of Edinburgh Part I Map Squares *Main> squares [1,-2,3] [1,4,9] squares :: [Int] -> [Int] squares xs [ x*x x

More information

Unix File System. Class Meeting 2. * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech

Unix File System. Class Meeting 2. * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech Unix File System Class Meeting 2 * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech Unix File System The file system is your interface to: physical

More information

CSCE 314 Programming Languages

CSCE 314 Programming Languages CSCE 314 Programming Languages Haskell: Declaring Types and Classes Dr. Hyunyoung Lee 1 Outline Declaring Data Types Class and Instance Declarations 2 Defining New Types Three constructs for defining types:

More information

Haskell Introduction Lists Other Structures Data Structures. Haskell Introduction. Mark Snyder

Haskell Introduction Lists Other Structures Data Structures. Haskell Introduction. Mark Snyder Outline 1 2 3 4 What is Haskell? Haskell is a functional programming language. Characteristics functional non-strict ( lazy ) pure (no side effects*) strongly statically typed available compiled and interpreted

More information

Chapter-3. Introduction to Unix: Fundamental Commands

Chapter-3. Introduction to Unix: Fundamental Commands Chapter-3 Introduction to Unix: Fundamental Commands What You Will Learn The fundamental commands of the Unix operating system. Everything told for Unix here is applicable to the Linux operating system

More information

Lab manual for Subject: System Programming. Class : sixth semester(cse)

Lab manual for Subject: System Programming. Class : sixth semester(cse) Lab manual for Subject: System Programming Class : sixth semester(cse) List of Practical. 1) Write a Program to create,read, and write into a file having record of students. 2) a) Write a program to generate

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

CS 307: UNIX PROGRAMMING ENVIRONMENT KATAS FOR EXAM 1

CS 307: UNIX PROGRAMMING ENVIRONMENT KATAS FOR EXAM 1 CS 307: UNIX PROGRAMMING ENVIRONMENT KATAS FOR EXAM 1 Prof. Michael J. Reale Fall 2014 COMMAND KATA 0 Command Kata 0: Preparation First, go to ~/cs307 cd ~/cs307 Make directory dkata0 and go to it mkdir

More information

CS101 Linux Shell Handout

CS101 Linux Shell Handout CS101 Linux Shell Handout Introduction This handout is meant to be used as a quick reference to get a beginner level hands on experience to using Linux based systems. We prepared this handout assuming

More information

REVIEW. The C++ Programming Language. CS 151 Review #2

REVIEW. The C++ Programming Language. CS 151 Review #2 REVIEW The C++ Programming Language Computer programming courses generally concentrate on program design that can be applied to any number of programming languages on the market. It is imperative, however,

More information

CHAPTER 1 UNIX FOR NONPROGRAMMERS

CHAPTER 1 UNIX FOR NONPROGRAMMERS CHAPTER 1 UNIX FOR NONPROGRAMMERS The man command is used to display the manual entry associated with word entered as argument. The -k option is used displays a list of manual entries that contain entered

More information