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.2.1.119 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.118 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.117 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.116 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.115 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.114 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.113 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.111 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.110 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.109 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.108 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.107 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.106 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.105 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.104 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.103 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.102 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.101 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.100 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala
trackler-2.2.1.99 tracks/scala/exercises/lens-person/src/main/scala/LensPerson.scala