Last modified: 2022-11-23
This is a course web page of
David Casperson
Associate Professor
Computer Science
University of Northern British Columbia

CPSC 370: Functional and Logic Programming ( )

Homework now due

You can find questions that have been assigned due dates here .

Homework assigned but without due dates

  1. Ignore this question for now Consider the function mystery = uncurry(flip (,)).
    1. What are the types of uncurry flip and (,)? (Use ghci or hoogle to find them)
    2. Use hoogle to find out what uncurry flip and (,) do.
    3. What is the type of mystery? See if you can reason this out, then check with ghci.
    4. mystery is not part of the Haskell prelude, but Hoogle knows about it. Look it up by asking Hoogle for functions that match its type. Tell me what you find.
    5. What other total functions can you conceive of that have the same type signature as mystery?

Note that Questions 12–24 have been assigned due dates.

Midterm 2 mark improvment.

This section is evaluated slightly differently from regular homework.

Marks earned in this section will be applied to your Midterm II grade, increasing it to a maximum of 42/50. Anyone can submit material for this part, and I will mark it.

The idea is that you develop your own Midterm II questions, that is, questions that would be suitable for inclusion on an alternate Midterm II exam for this course.

For each question you construct, comment on

  • what concepts it tests
  • its level: is this a C question, or a A+++ question?
  • Estimated time for an examinee to complete. (Do NOT spend too much time thinking about this. It's a guess.)
  • marking: would this be fast to mark? easy to say how you would mark it? (NB You do not need to actually invent a marking scheme, and it's ok to invent questions that might be difficult to mark.)
  • its clarity. Is this question beautiful and easy to understand? or do you like the idea a lot, but you are not yet sure about the wording?
  • number of marks? (not necessary)

Write a variety of question kinds:

  • Write at least two T/F questions, one easy, one harder.
  • Consider writing some multiple choice questions.
  • Write at least two calculational questions, one easy, one harder.
  • Write at least one question that involves either reading or writing Haskell code.


Uhmm. I’m still not sure how I'm going to do this.

Home page Semesters Site Map
go back Fall 2022 go forward
2022-12 other links

CPSC 200 [Other years]
CPSC 370 [Other years]
David’s Schedule

UNBC Undergraduate Calendar
Computer Science (BSc)