나는이 질문을 실제로 무엇이라고 부를지 모른다. 제시된 제목이 내가 생각할 수있는 최선이었습니다.스칼라에서 앨리어싱 유형
우리는 현재 스칼라에서 학교에서 함수 프로그래밍을하고 있으며, 때로는 내가 익숙한 것들의 방식에 뭔가 의미가없는 경우가 있습니다. :
type Rand[+A] = RNG => (A, RNG)
val int: Rand[Int] = _.nextInt
def unit[A](a: A): Rand[A] =
rng => (a, rng)
우리는 우리가 우리의 RNG의 특성을 사용하여 새 난수를 생성하는 각 기능마다 새로운 상태를 전송해야하는 반복을 방지하기 위해 노력하고, 여기 상태로 다루고있다.
이람다 함수 표현식은 우리의 국가를위한 장소 홀더로 사용되는 술어 "rng =>
을"정의
내 질문은 이것이다. 일반적으로이 술어가 정의하는 내용은 List.map(x => x)
과 같이 명확합니다. 여기서 x는 목록의 각 요소입니다. 그러나 무엇이 rng
여기에 있는지 명확하지 않습니다.
편집 : 나는 랜드 [A] 나타내는 어떤 질문 아니에요 ... 어떤 사람들은 내가 여기에 명확하게 몇 가지 더 예를 줄 것이다 질문을 이해하지 못했다
을 것 같아요. 내가받은 인수 rng =>
은 위지도의 예에서 예를
def map[A,B](l: List[A])(f: A => B): List[B] = ...
val l = List(1,2,3,4,5)
// l.map(x => x+1) -> List(2,3,4,5,6)
용으로 해석하도록되어 무엇을 요구하고, 그것은이다 매우 쉽게 개념적으로 이해하는 그 기능에 의해 주어진받은 인수 x =>
인수 f
은 목록 l
의 개별 요소로 해석되어야합니다.
rng =>
과 같은 개념적 연결을 구체적으로 찾고 있는데 unit
입니다.
'rng'은 또 다른'x' 또는'_'입니다. 접수 된 인수입니다. 이 경우'RNG' 타입의 arg/parameter입니다. 'Rand'유형은 'RNG'을 수신하고 튜플을 생성하는 함수입니다. – jwvh