Lumaktaw sa pangunahing content

EP: 7 - Stepper, Dr Rackets Debugging tool

Part 7. Stepper

Normally, Programmers use debugging tools to detect errors early on, One such tool in Dr. Racket is the stepper tool, the stepper tool is used to evaluate every step of the program to show the programmer what is happening in the execution of the code.

This is an example code. As we write more complicated programs, we will need the use of the stepper to check the code during runtime.

The stepper is launched by pressing the step button beside the run.

When the stepper is launched, a new window opens, one by one, the code is evaluated.

The green color means that the expression has to be evaluated, the output of that is placed in color purple.

After the forward step is pressed, the right expression goes to the left and it is then evaluated

The next line is then evaluated, A function declaration does not produce any value but the parameter of the function which is an image is evaluated.


When the parameters of the function is evaluated, that function call is replaced by the function body, and the parameters have been assigned.


The condition is then evaluated, the expressions of the predicate has to be evaluated.

The predicate then produces a boolean value

The if-expression is evaluated and the appropriate expression is then evaluated

The final evaluation happens, and all expressions have been evaluated.
You can also step back to see the history.

Debugging tools are useful for more complicated programs, it is an indispensible tool for programmers, newbies and experienced coders alike.

Mga Komento

Mga sikat na post sa blog na ito

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

EP: 19 - big-bang Mechanism

Part 19. big-bang We are using Dr. Racket to design interactive programs, from this day forward, this is going to be very complicated. Imagine we have 2 interactive programs, one that counts down from 10 to 0 and some animation of a cat walking in the screen. These programs are interactive by just pressing the space key, the program restarts. These interactive programs change state and it affects the program behavior. On the countdown program, it generates a number from 10 to 0 every 1 second. It is also the same with the cat program, it just changes the x coordinate of the cat every miliseconds. These are 2 different functions, now how can we combine these 2 functions. We combine them by using Dr. Rackets big-bang primitive. (big-bang 0           (on-tick next-cat)           (to-draw render-cat)) We use 0 as the initial world state, then on every tick, we get the next x coordinate, we pass it to the render c...