복붙노트

[SCALA] 스칼라는 최소한의 기능을 강조

SCALA

스칼라는 최소한의 기능을 강조

의이 질문을 위해 값을 만들어 보자 :

val a = 1 :: Nil

지금, 나는 익명 함수가이 같은 축약 형태로 기록 될 수 있다는 것을 보여줄 수 :

a.map(_*2)

그것은이 함수의 속기를 작성하는 것이 가능하다?

a.map((x) => x)

내 솔루션은 작동하지 않습니다

a.map(_)

해결법

  1. ==============================

    1.첫 번째 속기 양식은 포인트 - 무료로 쓸 수있다

    첫 번째 속기 양식은 포인트 - 무료로 쓸 수있다

    a map (2*)
    

    덕분에 교환 법칙이 성립되는 곱셈합니다.

    (X)에 관해서> X, 당신은 신원 기능을 원하는 =. 이 PREDEF에 정의 및 일반, 그래서 당신은 입력 안전하다고 확신 할 수있다.

  2. ==============================

    2.공식적으로는 X => a.map (x)를 의미하기 때문에, a.map (_)는 작동하지 않으며, (X => x)를 a.map 없습니다. 매개 변수 대신에 _ 하나가 부분적으로 적용되는 기능을 의미하기 때문입니다. 익명 함수를 의미합니다 2 * _의 경우,. 이 두 가지 용도는 그들에 의해 혼동하기가 매우 일반적입니다 너무 가까이 있습니다.

    공식적으로는 X => a.map (x)를 의미하기 때문에, a.map (_)는 작동하지 않으며, (X => x)를 a.map 없습니다. 매개 변수 대신에 _ 하나가 부분적으로 적용되는 기능을 의미하기 때문입니다. 익명 함수를 의미합니다 2 * _의 경우,. 이 두 가지 용도는 그들에 의해 혼동하기가 매우 일반적입니다 너무 가까이 있습니다.

  3. ==============================

    3.이 사용 사례에 대한 식별 기능을 사용해야합니다.

    이 사용 사례에 대한 식별 기능을 사용해야합니다.

    a.map(identity)
    

    ID는 scala.Predef에 다음과 같이 정의된다

    implicit def identity[A](x: A): A = x 
    
  4. from https://stackoverflow.com/questions/4422016/scala-underscore-minimal-function by cc-by-sa and MIT license