継続の概念に興味を持って、私はwikiや投稿を読み始め、この「単純な」例にたどり着きました。
reset {
...
shift { k: (Int=>Int) => // the continuation k will be the '_ + 1' below
k(7)
} + 1
}
// result: 8
Scalaの知識がなければ、私はここで完全に迷子になり、8がどのように出てくるのか理解できませんでした。
以下は、私が意味を理解しようとしたが失敗した方法です。誰か簡単な説明をお願いします。ええ、Scalaの文法書はありますが、それらは厚すぎます。私は、Scalaのマスター言語よりも、区切られた継続の概念を理解することに興味があります...
(Int=>Int)
C#デリゲートのように見えます。入力はInt、出力はIntです。
k: (Int=>Int) => k(7)
私はここで迷子になっています...kとは何ですか、そして(Int => Int)=> k(7)とは何ですか?
shift { k: (Int=>Int) => k(7) } + 1
さらに失われた...
reset { ...; shift { k: (Int=>Int) => k(7) } + 1 }
さらにますます失われます...