Sha256: b96b66842c23a661b11acec9706689bfe6f562837738cc440d290caba8a1b9a0

Contents?: true

Size: 901 Bytes

Versions: 396

Compression:

Stored size: 901 Bytes

Contents

import java.time.LocalDate

object LensPerson {
  case class Person(_name: Name, _born: Born, _address: Address)

  case class Name(_foreNames: String /*Space separated*/ , _surName: String)

  // Value of java.time.LocalDate.toEpochDay
  type EpochDay = Long

  case class Born(_bornAt: Address, _bornOn: EpochDay)

  case class Address(_street: String, _houseNumber: Int,
    _place: String /*Village / city*/ , _country: String)

  // Valid values of Gregorian are those for which 'java.time.LocalDate.of'
  // returns a valid LocalDate.
  case class Gregorian(_year: Int, _month: Int, _dayOfMonth: Int)

  // Implement these.

  val bornStreet: Born => String = ???

  val setCurrentStreet: String => Person => Person = ???

  val setBirthMonth: Int => Person => Person = ???

  // Transform both birth and current street names.
  val renameStreets: (String => String) => Person => Person = ???
}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.0.0.5 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.0.0.4 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.0.0.3 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.0.0.2 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.0.0.1 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.0.0.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.4.1 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.4.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.3.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.2.1 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.2.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.1.2 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.1.1 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.1.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.0.1 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-1.0.0 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala