Skip to content

Latest commit

 

History

History
177 lines (175 loc) · 4.8 KB

TODO.org

File metadata and controls

177 lines (175 loc) · 4.8 KB

TODO.org:scala-koans

1 Things to do

1.0.1 __ is a nicer pending

  • State “DONE” from “TODO” [2010-09-06 Mon 11:35]

1.0.2 “trace off” (to stop logging backtraces) by default

  • State “DONE” from “TODO” [2010-09-06 Mon 18:06]

1.0.3 meditate equivalent to pending

  • State “DONE” from “TODO” [2010-09-12 Sun 22:36]
1.0.3.0.1 force the student to look at the code

1.0.4 refine topic list

  • State “DONE” from “TODO” [2010-09-12 Sun 22:36]

1.0.5 work through topics

1.0.6 full dist with libs

1.0.7 show file and line number as part of meditation number

1.0.8 sbt commands for next

1.0.9 CANCELED simple package object for koan import

1.0.10 README w/ instructions

2 Topics

2.0.1 Test asserts - Message, bool, etc.

  • State “DONE” from “TODO” [2010-09-07 Tue 20:26]

2.0.2 val and var

  • State “DONE” from “TODO” [2010-09-07 Tue 20:26]
2.0.2.0.1 val
2.0.2.0.2 var
2.0.2.0.3 type inference

2.0.3 literals

  • State “DONE” from “TODO” [2010-09-07 Tue 21:26]
2.0.3.0.1 integers
2.0.3.0.2 floats
2.0.3.0.3 symbols
2.0.3.0.4 strings

2.0.4 Tuples - syntax

  • State “DONE” from “TODO” [2010-09-07 Tue 21:26]
2.0.4.0.1 tuple assignment
2.0.4.0.2 Pair = Tuple2

2.0.5 methods

  • State “DONE” from “TODO” [2010-09-13 Mon 21:22]
2.0.5.0.1 parameter type declarations
2.0.5.0.2 returns
2.0.5.0.3 return type
2.0.5.0.4 return type necessary if recursive
2.0.5.0.5 nested method
2.0.5.0.6 { } not always necessary

2.0.6 classes

  • State “DONE” from “TODO” [2010-09-13 Mon 22:17]
2.0.6.0.1 creating a class
2.0.6.0.2 constructor
2.0.6.0.3 passing values up to super’s constructor
2.0.6.0.4 defining methods
2.0.6.0.5 lazy val
2.0.6.0.6 memoization
2.0.6.0.7 method override
2.0.6.0.8 visibility
2.0.6.0.9 case classes

2.0.7 singleton objects

  • State “DONE” from “TODO” [2010-09-13 Mon 22:29]

2.0.8 imports / package

  • State “DONE” from “TODO” [2010-09-14 Tue 07:35]
2.0.8.0.1 package of this test is __
2.0.8.0.2 package namespace like with “package {…}”
2.0.8.0.3 imports are relative

2.0.9 abstract classes

  • State “DONE” from “TODO” [2010-09-14 Tue 12:46]

2.0.10 parameterized/structural types

  • State “DONE” from “TODO” [2010-09-14 Tue 12:51]

2.0.11 traits / mixins

  • State “DONE” from “TODO” [2010-09-14 Tue 12:59]
2.0.11.0.1 defining
2.0.11.0.2 mixxing in
2.0.11.0.3 constructor order
2.0.11.0.4 method order

2.0.12 options

  • State “DONE” from “TODO” [2010-09-14 Tue 14:04]

2.0.13 functions

2.0.13.0.1 Functions returning functions
2.0.13.0.2 Functions taking functions
2.0.13.0.3 call by name
2.0.13.0.4 functions can be defined inside functions (anywhere)
2.0.13.0.5 return type is sometimes not needed
2.0.13.0.6 types required on parameters
2.0.13.0.7 dot not always required
2.0.13.0.8 parens not always required
2.0.13.0.9 Method apply

2.0.14 collections

2.0.14.0.1 array
2.0.14.0.1.0.1 corresponds to java array
2.0.14.0.2 list
2.0.14.0.2.0.1 immutable2.0.14.0.2.0.2 Nil
2.0.14.0.3 map
2.0.14.0.3.0.1 Map of pairs

2.0.15 map, reduce, filter

2.0.16 implicit definitions

2.0.17 if expressions

2.0.18 Pattern Matching

2.0.18.0.1 match on value
2.0.18.0.2 match on type
2.0.18.0.3 match on tuple
2.0.18.0.4 wildcard match
2.0.18.0.5 match on unapply
2.0.18.0.6 match with guards
2.0.18.0.7 binding on nested variables - case p @ Person(first, last)
2.0.18.0.8 match on case class

2.0.19 operators

2.0.19.0.1 can’t be reserved words

2.0.20 currying / partial application / multiple argument lists

2.0.20.0.1 partialing applying a multiple argument func
2.0.20.0.2 partial an instance’s method

2.0.21 exceptions and try/catch

2.0.21.0.1 Nothing values

2.0.22 for comprehensions

2.0.23 regular expressions

2.0.23.0.1 match on regular expression

2.0.24 other looping contstructs

2.0.24.0.1 while
2.0.24.0.2 do while
2.0.24.0.3 for (i <- 1 to 20)

2.0.25 enumerations

2.0.26 package objects

2.0.27 actors

2.0.28 xml