値渡し、無名関数、関数渡し

      // docs
      // https://docs.scala-lang.org/tour/by-name-parameters.html
      def f0[T](f: T): T = f //値渡し
      def f1[T](f: => T): T = f //名前渡し
      def f2[T](f: () => T): T = f() //Function0
      def f3[T](f: Function0[T]): T = f() //Function0

「名前渡し」と「Function0」

こいつらはべつものというこはわかるが・・・