Описание тега callbyname

2 ответа

Почему `def hello[T](f: => T) = f; hello(()=>12)`компилируется, но`def hello(f: => Int) = f; привет (() => 12) `нет?

Следующий код может быть скомпилирован: def hello[T](f: => T) = f hello(() => 12) Но следующий не: def hello(f: => Int) = f hello(() => 12) Который сообщает об ошибке: <console>:9: error: type mismatch; found : () => Int require…
24 авг '14 в 16:08
3 ответа

Динамически меняющиеся функции scala

Я изучаю Scala, и я наткнулся на следующий код. def whileLoop(cond: => Boolean)(body: => Unit): Unit = if (cond) { body whileLoop(cond)(body) } var i = 10 whileLoop (i > 0) { println(i) i -= 1 } Выходные числа от 10 до 1. Таким образом, и c…
28 май '15 в 21:08
1 ответ

Должен ли параметр callbyname быть заключен в фигурные скобки при вызове функции?

В курсе Coursera Functional Reactive Programming Week 3, лекция 4 Эрик Мейер реализует функцию повторения для Future, которая будет повторять вычисления заданное число раз. Он определяет block в качестве параметра call_by_name, поскольку Future долж…
06 окт '14 в 09:40
1 ответ

Звонок по имени против обычного порядка

Я знаю, что эта тема обсуждалась несколько раз, но кое-что мне все еще неясно. Я прочитал этот вопрос о различиях между аппликативным порядком / вызовом по значению и обычным порядком / вызовом по имени, и есть кое-что, что я хотел бы уточнить раз и…
2 ответа

В Scala, когда будет подходящее время использовать лениво оцененный параметр, а не использовать функцию в качестве параметра?

def getStr(): String = { println("getStr is running") "str" } def lazyHello(para: => String) = { println("lazy hello is runing") println(para) } def notLazyHello(para: String) = { println("not lazy hello is runing") println(para) } def anoyHello(…
4 ответа

Класс случая Scala запрещает параметры вызова по имени?

Я хочу реализовать бесконечный список: abstract class MyList[+T] case object MyNil extends MyList[Nothing] case class MyNode[T](h:T,t: => MyList[T]) extends MyList[T] //error: `val' parameters may not be call-by-name проблема заключается в call-b…
0 ответов

Scala по имени в зависимости от параметров функции

Это именованный параметр: def foo(bar: => Boolean): Boolean = bar И это параметр функции: def foo(bar: () => Boolean): Boolean = bar() Чем отличаются две декларации? Оба будут оценены лениво и каждый раз, когда к параметру обращаются? Есть ли …
1 ответ

Что не так с передачей меня в качестве параметра в функции CallbyName под vb6?

Я хочу передать исходную форму, из которой я использую функцию CallByName. Почему-то это не работает так, как я размещаю там. Private Sub Command1_Click() 'CallByName Form1, "TestFkt", VbMethod, Nothing, Command1 '<--- works CallByName Form1, "Te…
06 фев '14 в 15:51
1 ответ

Обработка параметров по имени в макросе Scala

У меня есть макрос, который выполняет анализ вложенных функций приложений. Он сопоставляет приложения и извлекает типы параметров следующим образом: case q"$f[..$targs](..$args)(...$otherArgs)" => // retrieve the list of all parameter types val p…
20 апр '15 в 20:18
1 ответ

Использование apply ("()") для функции, переданной в параметре by-name: оценка не является принудительной?

У меня есть функция: def nanoTime() = { println("Getting nano time...") System.nanoTime // returns nanoTime } и другая функция, которая принимает функцию def printTime(time: => Long) = { // indicates a by-name parameter println(">> delayed(…
20 янв '13 в 22:03
1 ответ

Каков результат и пример вызова этой функции с помощью "Вызова по имени" в Java или C++?

Я просто прошел тест для своего класса языков программирования и наткнулся на этот вопрос: Предполагая вызов по имени, каковы результаты следующего кода: public class MyClass { static int i = 1; static float f(int x, int i){ int s = 0; for(i = 0; i …
01 дек '17 в 22:38
2 ответа

Разница между вызовом по значению и переводчиком по имени для лямбда-исчисления

В другом вопросе Боб представил следующий интерпретатор для нетипизированного лямбда-исчисления. data Expr = Var String | Lam String Expr | App Expr Expr data Value a = V a | F (Value a -> Value a) interpret :: [(String, Value a)] -> Expr -&gt…
1 ответ

callbyname работает с элементом массива как procname

У меня ужасная проблема. Я создал чудовищные классы со многими свойствами, среди которых есть и свойства массива. если я хотел бы сослаться на них с CALLBYNAME, это не будет работать, давайте посмотрим пример: public sub whatsoever() Dim alfaarray()…
10 май '16 в 20:41
2 ответа

Преобразование в кортеж с параметром по имени

Я хотел бы создать функцию со следующей подписью: def myFunction[T](functionWithName: (String, => T)): T так что я могу назвать это, например, так: val x = myFunction("abc" -> 4 * 3), Однако Tuple не принимает параметр by-name, поэтому подпись…
18 окт '17 в 15:56
1 ответ

Как смоделировать аргумент вызова по имени (например, getOrElse), используя ScalaMock?

Я хотел бы иметь возможность высмеивать возвращаемое значение getOrElse метод, так что он возвращает то, что передается как orElse аргумент вызова по имени с ScalaMock trait ToBeMocked { def getOrElse(arg: Int)(orElse: => String): String } ScalaM…
18 авг '13 в 01:18
1 ответ

VB6 CallByName горе

Я хочу сделать CallByName для некоторых сабвуферов, но я просто не могу заставить его работать. Все идет хорошо, пока исполнение не достигнет CallByNameтогда у меня проблемы: Всякий раз, когда я использую Meжалуется на ошибку компиляции И если я исп…
28 июн '10 в 14:58
1 ответ

Различия между "вызовом по имени" и Function0 в Scala

Каковы различия между f: => R а также f: () => R? Кажется, они работают одинаково, но их типы несовместимы друг с другом.
17 сен '18 в 19:55
1 ответ

Что бы это печаталось при вызове по имени и по запросу?

У меня есть эта строка кода на игрушечном языке. print-функция принимает список аргументов и печатает их. print(a, (a := 5, a)) Будет ли разница в выводе, если я использую call-by-value или call-by-name? Если так, то какими будут результаты. Можно п…
1 ответ

Синтаксис CallByName Outlook VBA

Я пишу код в MS Outlook для обработки входящих писем. Мой код содержит длинную условную инструкцию, чтобы определить категорию, к которой относится каждое входящее письмо. Затем, основываясь на результате этого условного оператора, предполагается, ч…
06 дек '14 в 12:59
1 ответ

Макро-вариант неявного класса, который допускает аргумент по имени

Для DSL я хочу представить dup метод расширения, который в основном вызывает Vector.fillнапример, import scala.collection.immutable.{IndexedSeq => Vec} implicit final class Dup[A](private val in: A) extends AnyVal { def dup(n: Int): Vec[A] = Vect…
07 сен '15 в 15:26