Skip to content

Commit

Permalink
Converted .sc scripts to scala files in a new src/script tree
Browse files Browse the repository at this point in the history
  • Loading branch information
Dean Wampler committed Mar 1, 2020
1 parent b8fe2d1 commit eb4664e
Show file tree
Hide file tree
Showing 111 changed files with 115 additions and 115 deletions.
3 changes: 0 additions & 3 deletions src/main/scala/progscala3/rounding/Generator.sc

This file was deleted.

@@ -1,4 +1,4 @@
// src/main/scala/progscala3/introscala/Upper1.sc
// src/script/scala/progscala3/introscala/Upper1.scala

class Upper {
def upper(strings: String*): Seq[String] = {
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/introscala/Upper2.sc
// src/script/scala/progscala3/introscala/Upper2.scala

object Upper {
def upper(strings: String*) = strings.map(_.toUpperCase())
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/linearization/Linearization1.sc
// src/script/scala/progscala3/objectsystem/linearization/Linearization1.scala

class C1 {
def m(): String = "C1 "
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/linearization/Linearization2.sc
// src/script/scala/progscala3/objectsystem/linearization/Linearization2.scala

class C1 {
print("C1 ")
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/linearization/Linearization3.sc
// src/script/scala/progscala3/objectsystem/linearization/Linearization3.scala

class C1 {
def m(previous: String): String = s"C1($previous)"
Expand All @@ -21,4 +21,4 @@ class C2 extends T1 with T2 with T3 {
}

val c2 = new C2
assert(c2.m("_") == "C1(T1(T2(T3(C2(_)))))")
assert(c2.m("_") == "C1(T1(T2(T3(C2(_)))))")
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/linearization/Linearization4.sc
// src/script/scala/progscala3/objectsystem/linearization/Linearization4.scala
// This same code is in src/test/.../linearization/LinearizationSuite.scala
class C1 {
def m(): String = "C1 "
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/ClassAbsField.sc
// src/script/scala/progscala3/objectsystem/overrides/ClassAbsField.scala

abstract class AbstractC1 {
val name: String
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/ClassField.sc
// src/script/scala/progscala3/objectsystem/overrides/ClassField.scala

class C1 {
val name = "C1"
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/PayrollTemplateMethod.sc
// src/script/scala/progscala3/objectsystem/overrides/PayrollTemplateMethod.scala

case class Address(city: String, state: String, zip: String)
case class Employee(name: String, salary: Double, address: Address)
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/TraitBadInitVal.sc
// src/script/scala/progscala3/objectsystem/overrides/TraitBadInitVal.scala
// ERROR: "value" read before initialized.

trait AbstractT1 {
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/TraitDefInitVal.sc
// src/script/scala/progscala3/objectsystem/overrides/TraitDefInitVal.scala

trait AbstractT3 {
println("In AbstractT3:")
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/overrides/TraitLazyInitVal.sc
// src/script/scala/progscala3/objectsystem/overrides/TraitLazyInitVal.scala

trait AbstractT2 {
println("In AbstractT2:")
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/ui/Button.sc
// src/script/scala/progscala3/objectsystem/ui/Button.scala
import progscala3.objectsystem.ui.Button

val b = new Button("Submit")
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/ui/VetoableClicks.sc
// src/script/scala/progscala3/objectsystem/ui/VetoableClicks.scala
import progscala3.objectsystem.ui.Button
import progscala3.traits.ui2.{Clickable, ObservableClicks, VetoableClicks}
import progscala3.traits.observer._
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/ui/VetoableClicksUap.sc
// src/script/scala/progscala3/objectsystem/ui/VetoableClicksUap.scala
import progscala3.objectsystem.ui.Button
import progscala3.traits.ui2.{Clickable, ObservableClicks}
import progscala3.traits.observer._
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/objectsystem/variance/MutableTypeVariance.sc
// src/script/scala/progscala3/objectsystem/variance/MutableTypeVariance.scala
// WON'T COMPILE: Parameterized types for vars can’t have variance annotations

class ContainerPlus[+A](var value: A) // COMPILATION ERROR
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/HTTPMethods.sc
// src/script/scala/progscala3/patternmatching/HTTPMethods.scala

sealed abstract class HttpMethod() { // <1>
def body: String // <2>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/Infix.sc
// src/script/scala/progscala3/patternmatching/Infix.scala

case class With[A,B](a: A, b: B)

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchBoolean.sc
// src/script/scala/progscala3/patternmatching/MatchBoolean.scala

val bools = Seq(true, false)

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchDeep.sc
// src/script/scala/progscala3/patternmatching/MatchDeep.scala

// Simplistic address type. Using all strings is questionable, too.
case class Address(street: String, city: String, country: String)
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchDeep2.sc
// src/script/scala/progscala3/patternmatching/MatchDeep2.scala

case class Address(street: String, city: String, country: String)
case class Person(name: String, age: Int, address: Address)
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchDeepTuple.sc
// src/script/scala/progscala3/patternmatching/MatchDeepTuple.scala

val itemsCosts = Seq(("Pencil", 0.52), ("Paper", 1.35), ("Notebook", 2.43))
val itemsCostsIndices = itemsCosts.zipWithIndex
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchFunArgs.sc
// src/script/scala/progscala3/patternmatching/MatchFunArgs.scala

case class Address(street: String, city: String, country: String)
case class Person(name: String, age: Int)
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchGuard.sc
// src/script/scala/progscala3/patternmatching/MatchGuard.scala

val results = Seq(1,2,3,4) map {
case e if e%2 == 0 => s"even: $e" // <1>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchList.sc
// src/script/scala/progscala3/patternmatching/MatchList.scala

val nonEmptyList = List(1, 2, 3, 4, 5)
val emptyList = Nil
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchRegex.sc
// src/script/scala/progscala3/patternmatching/MatchRegex.scala

val BookExtractorRE = """Book: title=([^,]+),\s+author=(.+)""".r // <1>
val MagazineExtractorRE = """Magazine: title=([^,]+),\s+issue=(.+)""".r
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchReverseSeq.sc
// src/script/scala/progscala3/patternmatching/MatchReverseSeq.scala
// Compare to match-seq.sc

val nonEmptyList = List(1, 2, 3, 4, 5)
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSeq.sc
// src/script/scala/progscala3/patternmatching/MatchSeq.scala

val nonEmptySeq = Seq(1, 2, 3, 4, 5) // <1>
val emptySeq = Seq.empty[Int]
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSeqParens.sc
// src/script/scala/progscala3/patternmatching/MatchSeqParens.scala

val nonEmptySeq = Seq(1, 2, 3, 4, 5)
val emptySeq = Seq.empty[Int]
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSeqUnapplySeq.sc
// src/script/scala/progscala3/patternmatching/MatchSeqUnapplySeq.scala

val nonEmptyList = List(1, 2, 3, 4, 5) // <1>
val emptyList = Nil
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSeqWithoutUnapplySeq.sc
// src/script/scala/progscala3/patternmatching/MatchSeqWithoutUnapplySeq.scala

val nonEmptyList = List(1, 2, 3, 4, 5)
val emptyList = Nil
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSurprise.sc
// src/script/scala/progscala3/patternmatching/MatchSurprise.scala
// Does not compile with strict warnings, because of <2>.

def checkY(y: Int): Seq[String] = {
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchSurpriseFix.sc
// src/script/scala/progscala3/patternmatching/MatchSurpriseFix.scala

def checkY(y: Int): Seq[String] = {
for {
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchTuple.sc
// src/script/scala/progscala3/patternmatching/MatchTuple.scala

val langs = Seq(
("Scala", "Martin", "Odersky"),
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchTypes.sc
// src/script/scala/progscala3/patternmatching/MatchTypes.scala
// Does not compile with strict warnings, because of type erasure,
// the compiler can't distinguish between Seq[X] and Seq[Y], as
// written.
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchTypesFix.sc
// src/script/scala/progscala3/patternmatching/MatchTypesFix.scala

def doSeqMatch[T](seq: Seq[T]): String = seq match {
case Nil => "Nothing"
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchVararglist.sc
// src/script/scala/progscala3/patternmatching/MatchVararglist.scala

// Operators for WHERE clauses
object Op extends Enumeration { // <1>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/MatchVariable.sc
// src/script/scala/progscala3/patternmatching/MatchVariable.scala

val result = Seq(1, "one", 2, 3.14, "four", Symbol("five")) map { // <1>
case 1 => "int 1" // <3>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/match-variable3.sc
// src/script/scala/progscala3/patternmatching/match-variable3.sc

val result = Seq(1, "one", 2, 3.14, "four", Symbol("five")) map {
str => str match { // <1>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/RegexAssignments.sc
// src/script/scala/progscala3/patternmatching/RegexAssignments.scala

val cols = """\*|[\w, ]+"""
val table = """\w+"""
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/ScopedOptionFor.sc
// src/script/scala/progscala3/patternmatching/ScopedOptionFor.scala

val dogBreeds = Seq(Some("Doberman"), None, Some("Yorkshire Terrier"),
Some("Dachshund"), None, Some("Scottish Terrier"),
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/AssignedIf.sc
// src/script/scala/progscala3/rounding/AssignedIf.scala

val configFile = new java.io.File("somefile.txt")

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/BasicFor.sc
// src/script/scala/progscala3/rounding/BasicFor.scala

import progscala3.rounding.WeekDay

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/CallByName.sc
// src/script/scala/progscala3/rounding/CallByName.scala

@annotation.tailrec // <1>
def continue(conditional: => Boolean)(body: => Unit): Unit = { // <2>
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/DaysEnumeration.sc
// src/script/scala/progscala3/rounding/DaysEnumeration.scala

import progscala3.rounding.WeekDay
import progscala3.rounding.WeekDay._
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/DoWhile.sc
// src/script/scala/progscala3/rounding/DoWhile.scala

var count = 0

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/DoubleGuardFor.sc
// src/script/scala/progscala3/rounding/DoubleGuardFor.scala

import progscala3.rounding.WeekDay

Expand Down
3 changes: 3 additions & 0 deletions src/script/scala/progscala3/rounding/Generator.scala
@@ -0,0 +1,3 @@
// src/script/scala/progscala3/rounding/Generator.scala

for (i <- 1 to 10) println(i)
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/If.sc
// src/script/scala/progscala3/rounding/If.scala

import progscala3.rounding.WeekDay

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/LazyInitVal.sc
// src/script/scala/progscala3/rounding/LazyInitVal.scala

object ExpensiveResource {
lazy val resource: Int = init()
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/NoDotBetter.sc
// src/script/scala/progscala3/rounding/NoDotBetter.scala

def isEven(n: Int) = (n % 2) == 0

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/ScopedFor.sc
// src/script/scala/progscala3/rounding/ScopedFor.scala

import progscala3.rounding.WeekDay

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/patternmatching/ScopedOptionFor.sc
// src/script/scala/progscala3/patternmatching/ScopedOptionFor.scala

import progscala3.rounding.WeekDay
import progscala3.rounding.WeekDay._
Expand Down
@@ -1,5 +1,5 @@
// BEGIN SERVICE
// src/main/scala/progscala3/rounding/Traits.sc
// src/script/scala/progscala3/rounding/Traits.scala

class ServiceImportante(name: String) {
def work(i: Int): Int = {
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/While.sc
// src/script/scala/progscala3/rounding/While.scala

def isThirteen(i: Int): Boolean = {
// Scala returns the result of the last expression in a method
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/rounding/YieldingFor.sc
// src/script/scala/progscala3/rounding/YieldingFor.scala

import progscala3.rounding.WeekDay
import progscala3.rounding.WeekDay._
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/toolslibs/Example.sc
// src/script/scala/progscala3/toolslibs/Example.scala

case class Message(name: String)

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/traits/TraitConstruction.sc
// src/script/scala/progscala3/traits/TraitConstruction.scala

trait T1 {
// The following would cause: "uninitialized value"
Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/traits/ui/ButtonCountObserver.sc
// src/script/scala/progscala3/traits/ui/ButtonCountObserver.scala
import progscala3.traits.ui._
import progscala3.traits.observer._

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/traits/ui/ButtonCountObserver2.sc
// src/script/scala/progscala3/traits/ui/ButtonCountObserver2.scala
import progscala3.traits.ui._
import progscala3.traits.observer._

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/traits/ui2/ClickCountObserver.sc
// src/script/scala/progscala3/traits/ui2/ClickCountObserver.scala
import progscala3.traits.ui2._
import progscala3.traits.observer._

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/traits/ui2/VetoableClickCountObserver.sc
// src/script/scala/progscala3/traits/ui2/VetoableClickCountObserver.scala
import progscala3.traits.ui2._
import progscala3.traits.observer._

Expand Down
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/typelessdomore/AbstractTypes.sc
// src/script/scala/progscala3/typelessdomore/AbstractTypes.scala
import java.io._

abstract class BulkReader {
Expand Down Expand Up @@ -26,4 +26,4 @@ class FileBulkReader(val source: File) extends BulkReader {
println(new StringBulkReader("Hello Scala!").read)
// Assumes the current directory is the project root:
println(new FileBulkReader(
new File("src/main/scala/progscala3/typelessdomore/AbstractTypes.sc")).read)
new File("src/script/scala/progscala3/typelessdomore/AbstractTypes.scala")).read)
@@ -1,4 +1,4 @@
// src/main/scala/progscala3/typelessdomore/Factorial.sc
// src/script/scala/progscala3/typelessdomore/Factorial.scala

def factorial(i: Int): Long = {
def fact(i: Int, accumulator: Long): Long = {
Expand Down

0 comments on commit eb4664e

Please sign in to comment.