Lumaktaw sa pangunahing content

EP: 13 - Interval Data Definitions

Part 13. Interval Data Definition

We use intervals to define information where it has a specific range.

Here is the Example Problem: Imagine that you will make a data definition for the seat number in a row on a certain theater. There are 32 seats in a row.

If you have been in some arena or gymnasium. You know that the seats are horizontal in nature. There are seat numbers from 1 to 32. That is the information that we can get from the problem domain.

In our type definition, we declare the seat number as SeatNum and it is an integer between 1 and 32. Square brackets are inclusive and parenthesis are exclusive. Just like the number line in elementary math.

Next, the interpretation of the data.

 

We need to be specific with our interpretations of the data. We have to determine what these kinds of seats are.

Now for the examples


Finally, the template, we derive the template from the HtDD recipe. We also need to specify what data we used.


And we are done with the data definition that we can use as a guide on how to design the function itself.
 

Mga Komento

Mga sikat na post sa blog na ito

EP: 18 - HtDF with Itemization

Part 18. HtDF with Itemization From the Countdown Display definition that we have made earlier, we are going to make a function out of it. We have to output an image depending on the state of the countdown.  Here is the Signature, Purpose and Stub. It is recommended to run the code often, the earlier we detect bugs, the better. We need some examples. For tests on itemizations, we need to have as many tests as there are cases. Also, if we have an interval, we have to test points of variance. For the Interval, there is not much variance in the seconds before midnight so it is okay to have only one test for that. There is a primitive called text which converts text to an image, we can also use number->string to convert a number into a string datatype. Note that when we are devising tests, we are already working out the behavior of the function before we start coding. Now we get the template and start creating the function body.  ...

Problem Solving using HtDF method

Problem Solving In this problem, we will use the HtDF method to create a function. Problem:  Design a function that pluralizes a given word. (Pluralize means to convert the word to its plural form.) For simplicity you may assume that just adding s is enough to pluralize a word. Here is the problem that we need to convert into a function. We need to do it systematically using the HtDF method. First we need the signature, recall that the signature will tell us what is the input and expected output. A word is the input and output of the function, and we can represent words, which is just a sequence of characters if you think about it, like a String. So the signature of the function is ;;String -> String Then we will need to know what is the function's purpose, we can look at the specifications to know the purpose. It says that the word is pluralized in the process "assumption that adding s at the end is the pluralized form of the word". Ther...

EP: 15 - Itemization Data Definition

Part 15. Itemization Data Definition The Itemization Data Definition is what we use for information compromised of 2 different categories, at least one of each is not a distinct value. This data definition is quite complex. As an example: Design a data definition for the current state of the countdown for the display, which falls in one of 3 categories. Not yet started from 10 to 1 seconds until midnight Complete This is like the countdown clock in TV. By looking at these states, the second one is not a distinct data value. Therefore this is not an enumeration. In this case, we will use the Itemization Data Definition. We have to choose a datatype that fulfills the categories. For someone that has done strict programming style method for a long time now, Data consisting of multiple data types confuse my brain, but I think Lisp Based languages tend to be liberal about the types of parameters unlike the C family or it's influences. This is one of the thing that lisp ...