[clean-list] Help Please: Beginner to Clean.. Console I/O

Khurram Khan kkjcid at hotmail.com
Mon May 2 20:37:17 MEST 2011






Hi

I have previously been in touch with Peter Achten regarding some issues I am facing learning programming in Clean. He recommended that I should read CleanBook1, (http://wiki.clean.cs.ru.nl/Functional_Programming_in_Clean), which i did. However, I am still not fully satisfied with my understanding of I/O commands in Clean. I was able to completely understand Chapter 1-2-3 and some parts of Chapter 4 as well, I have also completed all the exercises which came along the first three chapters. 

Now if we consider the example "hello1" from the CleanBook1, chapter 5.1.1

Start :: *World -> *World
Start world
    # (console,world) = stdio world
    # console = fwrites "What is your name? " console
    # (name,console) = freadline console
    # console = fwrites ("\n\nHello " +++ name) console
    # (_,console) = freadline console
    # (ok,world) = fclose console world
    | not ok = abort "Cannot close console"
    | otherwise = world

then it first prints a string (using fwrites) to the console and then reads a line (using freadline) from the console. but I find it hard to understand the meaning of each line of the code. For example: 

Code Line 1   - why does we write (console,world) in the first line of the code?
Code Line 3   - is the line read from the console stored in "name"? is "name" a variable or an list/array, and can we perform any operation on it before printing it back to the console?
Code Line 5   - in (_,console) what does "_" represent
Code Line 6   - What does (ok,world) mean?

Question regarding output of the above program: When i compile this program in Clean then it prints out the value 65536 on the console at the end, before terminating. What does this value represent and why is it output? because i am not able to understand where it comes from as it is not mentioned anywhere in the code.

I will be deeply grateful for any help on this matter.

Kind regards
Khurram

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/clean-list/attachments/20110502/4d631c82/attachment.html>


More information about the clean-list mailing list