---------- Forwarded message ---------- From: saad bashir <bashir.s...@gmail.com> Date: Mon, May 14, 2012 at 7:08 PM Subject: Re: [racket] Basic inquiry To: Matthias Felleisen <matth...@ccs.neu.edu>
Dear Matthias, I apologize for what you took as a criticism of the text. It was not meant to be, rather an admission of my own shortcoming. The book is superb and starts at a really basic level explaining and teaching computer science in the purest shorn of all paraphernalia. I think it is great and consider myself lucky to have been led to it. I will persist. I am getting better results and your detailed help below is great. I will finish the book and hope will become a good and useful programmer. Once again I am in awe of your commitment to teaching programming and the fact that despite having, I am sure, thousands of learners and doing a huge number of really innovative things you still take time out to help someone like me. Thank you. Saad On Mon, May 14, 2012 at 5:53 PM, Matthias Felleisen <matth...@ccs.neu.edu>wrote: > > On May 13, 2012, at 1:53 AM, saad bashir wrote: > > Now it seems that the text is assuming something that I do not know. > > > > Sorry for your difficulties. The text isn't assuming knowledge at all. It > does assume that you read the Help Desk for functions that have no > description in the text, for example, substring. But these are linked to > the Help Desk to make life easy. > > It does assume a desire to play at the interactions panel. For example, > when it says > > > - > > > string-ith<http://pre.acket-lang.org/docs/html/htdp-langs/beginner.html#(def._(lib._htdp-beginner..rkt._lang)._((lib._lang%2Fhtdp-beginner..rkt)._string-ith))> > consumes > a string s and extracts the one-character substring located at the ith > position (counting from 0); > > you should understand the following, based on your experience with sqrt > and sqr: > -- the function is applied to a string and a number i > [[ I see how the second part isn't spelled out and I will fix this > immediately. > Thanks for pointing it out, even if only implicitly. ]] > > -- it returns a string > > It does not assume you truly understand what it produces though I'd hope > it's > clear. From your experience with sqrt, I would hope you'd enter > > > (string-ith "some string" 8) > > or > > > (string-ith "some string" 0) > > or even > > > (string-ith "some string" -33) > > and then to infer what it does. > > Next, the exercises as of mixing it up assume that you are willing to play > with the composition of functions or equally the nesting of expressions. > See exercise 4. > Since the exercise clearly requests breaking up the string into pieces, > you need > substring. So start by experimenting with substring: > > > (substring str 0 i) > "hello" > > Now that's a great start. You have the first part of the desired output. > > > (substring str i 8) > "wor" > > (substring str i 10) > "world" > > (substring str i 20) > substring: ending index 20 out of range [5, 10] for string: "hello world" > > The second experiment gives you the second part of the desired output. > > Okay, now we need to piece together these two pieces and a _ in between: > > (define str "helloworld") > (define i 5) > (string-append (substring str 0 i) "_" (substring str i 10)) > > This is what I have in my Definitions Window. I click Run and it works. > > Finally, change the str definition to > > (define str "Saad is learning to program and it is working") > > Run the program. See whether you still get what you want. You don't. > The "10" should definitely trouble you. Because it is special to hello > world. > So try to find an expression that will replace it for arbitrary str > strings. > > Helps? -- Matthias > > > >
____________________ Racket Users list: http://lists.racket-lang.org/users