shapeless

    0

    1답변

    내 프로젝트에서 케이스 클래스의 인스턴스 인 불변 오브젝트에 중첩 된 업데이트를 수행해야하는 상황이 발생했습니다. 처음에는 그냥 케이스 클래스에서 제공하는 copy 함수를 사용하고 싶었지만 렌즈를 발견했습니다. 나는 Shapeless과 Scalaz 구현을 찾아보고 Shapeless에서 렌즈를 사용하려고 결정 했으므로 "com.chuusai" % "shape

    1

    1답변

    HList 및 파생 된 HList를 반환하는 방법을 알고있는 typeclass를 만들고 싶습니다. 이상적으로는의 라인을 따라 구조 것이다 : trait Axis[A, L1 <: HList] { type L2 <: Mapped[L1,Ordering]#Out def vectorize(a:A): L1 def orderings: L2

    4

    3답변

    가능한 많은 수의 멤버가있는 케이스 클래스를 고려하십시오. 상기 케이스 case class C(s1: String, s2: String) 같이 두 개의 인자를 가정하고, 따라서 적어도 많은 인자의 크기와 배열을 가정 도시이어서 val a = Array("a1", "a2") 그러나 scala> C(a(0), a(1)) res9: C = c(a1,a2

    17

    2답변

    에 볼품없는 확장 기록을 전달 (버전 2.10.2을 사용). 내가 아주 간단한 확장 기록을 만들었습니다 def fun(x: ::[Int with KeyTag[String("foo"), Int], HNil]) = x("foo") 다음 REPL에 따르면 val rec1 = ("foo" ->> 42) :: HNil 을, 이것은 내가 간단한 함수를 정의하려고

    3

    1답변

    에서 사용할 수있는 방법을 볼품 poly1의이 코드입니다. TraversableLike는지도 서명을 정의합니다. Map [B, That] (f : A => B), CanBuildFrom에서 "That"를 제공 할 것이므로, 혼란은 A => B입니다. Poly1의 소스 코드를 보았습니다. 매핑이 없습니다. 목록 (3) .map (inc)가 작동합니까?

    0

    1답변

    지속 할 수있는 방법이 있습니까? (가능합니까?) 동적으로 성장하는 HList? 내 의사 코드 : var llist = 1 :: 2 :: "foo" :: true :: HNil var list: HList = HNil // here is a wrong type! in fact we dont need HList type object mapFunc ext

    6

    1답변

    와 재귀 다형성 기능을 어떻게 쓸 수있다 : 이것은 주로 내가 원하는 것을 할 것 같다 object simpleRec extends Poly1 { implicit def caseInt = at[Int](identity) implicit def caseList[A, B](implicit ev: simpleRec.Case.Aux[A, B])

    2

    1답변

    그래서지도 기능을 HList 이상으로 만들고 싶었지만 적용 기능 내에서 몇 가지 조건을 확인해야합니다. 매끄러운처럼 : 결과로 object test extends Poly1 { implicit def default[L <: HList](implicit head: ops.hlist.IsHCons[L]) = at[L](t => {

    1

    1답변

    나는이 제네릭 코드를 작성하기 위해 ID와 타임 스탬프와 같은 사례 클래스의 공통 속성을 고려하고 싶습니다. 다음은 잘 작동하지만 난 각각의 경우 클래스의 모든 속성을 반복해야 : trait HasIdAndTimestamp { val id: Int val timestamp: Long } case class Client(id: Int,

    2

    1답변

    나는 다음과 같은 일반적인 탐색 기능을 작성하는 Shapeless library에서 SYB 구현을 사용하려면 : class Data // Perform the desired manipulation on the given data object manipulate extends ->((data: Data) => data) def traverseAndM