基礎がなかなか身につかん!

// 何かの関数
def func () = {
  println("in the func()")
  "executing func()"
}

// 名前渡しされる関数
def hoge(f: => String) = {
  println("in the hoge()");
  f
}

実行すると↓
scala> hoge(func)
in the hoge()
in the func()
res33: String = executing func()

hoge関数の引数のところは、「Stringを返す関数をfという名前で受け取る」
っていう認識であってる?

あと、
def piyo(f:Int => String) = f(10)
っていうのも名前渡しになるんだよね?
この場合はの引数の意味は「Intを引数に取って、Stringを返す関数を、fという名前で受け取る」
ということ?