我其實不知道該怎麼稱呼這個問題。提出的標題是我能想到的最好的。Scala中的類型別名
我們目前正在與函數式編程工作在斯卡拉在學校,每隔一段時間也有少數情況下,有些事情沒有意義的事情的方式,我已經習慣了...一個具體的例子是這樣的:
type Rand[+A] = RNG => (A, RNG)
val int: Rand[Int] = _.nextInt
def unit[A](a: A): Rand[A] =
rng => (a, rng)
我們正在處理此狀態,努力對抗其每一次新的狀態轉移到每一個功能,我們生成使用我們的RNG特徵的新的隨機數的重複。
我的問題是這樣的:
lambda函數表達式定義要作爲我們國家的佔位符謂語「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
的每個單獨元素。
我專門找在unit
與rng =>
這樣一個概念上的連接。
'rng'只是另一個'x'或'_'。這是一個接受的論點。在這種情況下,它是一些'RNG'類型的arg /參數。類型'Rand'是一個接收'RNG'併產生一個元組的函數。 – jwvh