« Return to Thread: [scala] Programming in Scala PrePrint V2

Re: [scala] Programming in Scala PrePrint V2

by Bill Venners-3 :: Rate this Message:

Reply to Author | View in Thread

Hi Erkki and Blair,

Blair asked for PDF with annotations showing the differences between  
version 1 and 2 of the PrePrint. I don't think I'll be able to come up  
with something like that. About the best I can do is give a list of  
things I'm aware of that changed.

First of all, we tried to fix all typographical and coding errors that  
were reported via the Suggest link. So there are minor changes in all  
chapters. I also attempted to improve things people said were  
confusing, etc., that were reported, but only got that done in about  
the first 10 chapters.

The primary added and altered things are:

1. We added an introduction (page xx)
2. We use function value and function literal instead of closure and  
anonymous function. For the concept of function objects different from  
methods and local functions, we use "first-class function."
3. We changed the text so that we only use closure to mean a function  
value that captures free variables.
4. Added a section on how Scala variables and objects map to Java's on  
page 93, including a discussion of the terminology we use when  
speaking at the Scala level of abstraction.
5. Added a few paragraphs about designing abstractions on page 103.
5. Explained more about shadowing and why you can redefine variables  
in the interpreter on page 106.
6. Added a bit about semicolon inference on page 108.
7. Did a rewrite to some extent of chapter 7, Built-in Control  
Structures.
8. Also did a lot of work on chapter 8, Functions and Closures. It  
includes a new section on partially applied functions on page 177.  
Closures are introduced on 181. We added a section on repeated  
parameters on 184.
9. We split off portions of the old chapter 8 and made a chapter 9,  
Control Abstraction. One new thing in there is section 9.3, currying.
10. Chapter 15, Collections, has been fleshed out quite a bit.
11. Chapter 24, Extractors, is new.
12. Chapter 25, Objects as Modules, is new.
13. Chapter 26, Annotations, is new.
14. Chapter 27, Combining Java and Scala, has been updated quite a bit.
15. Chapter 28, Combinator Parsing, is new.
16. Added a lot of words to the glossary. Please check those out as  
well, and submit comments about them to help us make them better.

Oh, and check out the acknowledgements. They are updated too. I can't  
promise we'll put all these names in the printed book, because it will  
depend on how close our page count is a multiple of 8. But I wanted to  
show my appreciation for everyone who submitted comments through the  
Submit link. So everyone's name should be in there, in the order  
determined by this script (the # next to the name is the number of  
comments submitted):

val input = """
      1 --- Kegan Gan
      1 --- Ryan Boyer
       ... a whole bunch of other lines ...
     92 --- Javier Diaz Soto
    105 --- Tony Sloane
    114 --- Blair Zajac
"""

import scala.collection.immutable.TreeSet
import scala.collection.immutable.TreeMap

var map = TreeMap[Int, TreeSet[String]]()

for (line <- input.split("\n")) {
   val pairStrings = line.split("---")
   if (pairStrings.length == 2) {
     val num = pairStrings(0).trim.toInt
     val name = pairStrings(1).trim
     if (map.contains(num)) {
       val newSet = map(num) + name
       map += (num -> newSet)
     }
     else {
       val newSet = TreeSet.empty[String] + name
       map += (num -> newSet)
     }
   }
}

for {
   num <- map.keys.toList.reverse
   name <- map(num).elements
} println(name + ", ")


Thanks.

Bill

On Feb 19, 2008, at 5:20 AM, Erkki Lindpere wrote:

> Hi Bill,
>
> Is there an overview of what has changed for those who have already  
> read the first version?
>
> Thanks,
>
> Erkki Lindpere
>
> Bill Venners wrote:
>> Hi All,
>>
>> I just released an update to Programming in Scala PDF. We sort of  
>> waited to the last minute to get our email notification system  
>> together, so tomorrow or soon thereafter people who have purchased  
>> the PDF will get an email with a unique URL at which to download  
>> the book. In the meantime, if you simply log into your account at  
>> Artima, for example by clicking on Sign In in the top left corner  
>> of the home page:
>>
>> http://www.artima.com/index.jsp
>>
>> Then click on "Your Settings" in the upper left corner, you can  
>> download the latest version by clicking on "Programming in Scala  
>> eBook" link, about midway down the page.
>>
>> We've added a few new chapters and worked hard to improve the  
>> material. It has over 100 pages more than the previous version. The  
>> comments everyone submitted through the feedback system was very  
>> helpful, so please keep those comments coming.
>>
>> And if for some reason you haven't gotten your copy yet, you can  
>> get one here:
>>
>> http://www.artima.com/shop/forsale
>>
>> Thanks.
>>
>> Bill
>> ----
>> Bill Venners
>> President
>> Artima, Inc.
>> http://www.artima.com
>>
>>
>>

 « Return to Thread: [scala] Programming in Scala PrePrint V2