Описание тега pass-by-name
13
ответов
Последствия только использования стека в C++
Допустим, я знаю парня, который плохо знаком с C++. Он не передает указатели (правильно), но он отказывается передавать по ссылке. Он всегда использует проход по значению. Причина в том, что он чувствует, что "передача объектов по ссылке является пр…
12 сен '10 в 14:15
2
ответа
Поименный параметр в Scala
Из книги "Программирование в Scala": var assertionsEnabled = true def myAssert(predicate: () => Boolean) = if (assertionsEnabled && !predicate()) throw new AssertionError myAssert(() => 5 > 3) Использование пустого списка параметров…
07 апр '18 в 12:46
1
ответ
Почему Scala зависает при оценке параметра по имени в Future?
Приведенный ниже (надуманный) код пытается напечатать параметр String по имени в будущем и вернуть его после завершения печати. import scala.concurrent._ import concurrent.ExecutionContext.Implicits.global import scala.concurrent.duration._ class Pr…
23 ноя '13 в 02:58
0
ответов
Коллекция Scala, которая принимает параметры передачи по имени
Существует ли такая коллекция? На данный момент код, который я имею, не компилируется: object pagerank { // TODO fixme val totalNodes: BigDecimal = 4 class Node(in: => List[Node], out: => List[Node]) { def rank: BigDecimal = { in.foldLeft(BigD…
15 апр '14 в 10:52
0
ответов
Что означает A => => B?
В другом вопросе я получил значение типа A => => B, Что это значит? Меня всегда заставляли понять, что => A на самом деле это не тип, а способ объявления аргумента для работы с семантикой вызова по имени. Но если это не тип, что делает A =&…
06 окт '15 в 11:27
9
ответов
Что такое "передача по имени" и как она работает?
Я проверил Википедию и погуглил, но все еще не могу понять, как работает логин в Алголе 60.
08 май '09 в 03:16
2
ответа
Как установить обработчик бездействия для параметра по имени?
Я определил метод treeNode создать узел, и который может иметь дочерние узлы. Упрощенный код: def treeNode(text:String) (children: => Any) { val b = new TreeNode(text) children } Когда я использую этот метод, я должен написать: treeNode("aaa") { …
08 янв '12 в 07:43
2
ответа
Передача Python по значению ссылки на объект
Я пытаюсь написать алгоритм на python, чтобы распечатать все пути от корня (двоичного) дерева до каждого листа. Вот мой код: def fb_problem(node, curr_trav): curr_trav = curr_trav + [node] if node.left is None and node.right is None: for path_node i…
31 мар '16 в 18:48
2
ответа
Python: передача параметров по имени вместе с kwargs
В Python мы можем сделать это: def myFun1(one = '1', two = '2'): ... Затем мы можем вызвать функцию и передать аргументы по их имени: myFun1(two = 'two', one = 'one') Также мы можем сделать это: def myFun2(**kwargs): print kwargs.get('one', 'nothing…
25 фев '13 в 19:25
1
ответ
Запутанный тип ссылок на языке Go
Я пытался создать структуры данных Trie с помощью Go Language, но каким-то образом он застрял с проблемой ссылок, вот она. http://play.golang.org/p/ASSGF5Oe9R // Package main provides ... package main import "fmt" type RootTrie []Trie type Trie stru…
30 дек '14 в 06:13
3
ответа
Использование параметров по имени Scala
Я изучаю книгу "Функциональное программирование в Scala" и наткнулся на пример, который я не до конца понимаю. В главе о строгости / лени авторы описывают конструкцию потоков и имеют такой код: sealed trait Stream[+A] case object Empty extends Strea…
30 окт '14 в 21:01
1
ответ
C++ элегантный способ передачи (подмножество) опций в функцию
У меня есть функция, точное поведение которой контролируется набором флагов. Большинство из них обычно ложные. Наличие их всех в качестве параметров быстро становится очень грязным. Я мог бы создать перечисление для флагов: enum ParseFlags { assignm…
08 июн '17 в 15:16
2
ответа
Проход по реализации имени в C
Как я могу вычислить значение арифметического выражения ^2 + 3i - 1, которое зависит от индекса i , используя механизм передачи по имени в языке C 9∑ я ^2 + 3i - 1= 0 через вызов процедуры суммирования с аргументом (ами), переданными по имени Переда…
12 май '16 в 20:48
1
ответ
Используйте сохраненное значение в конструкторе суперкласса при расширении класса, принимающего параметр по имени
У меня есть случай, когда я хочу расширить класс, который принимает параметр по имени в своем конструкторе: class Extension(something: Something) extends Base(something.doSomething(something.getSomething(false)) class Base(expression: => Result) …
05 ноя '14 в 12:57
6
ответов
Звоните по ссылке, стоимости и имени
Я пытаюсь понять концептуальную разницу между вызовом по ссылке, стоимости и имени. Итак, у меня есть следующий псевдокод: foo(a, b, c) { b =b++; a = a++; c = a + b*10 } X=1; Y=2; Z=3; foo(X, Y+2, Z); Что такое X, Y и Z после вызова foo, если a, b и…
05 апр '13 в 00:15
1
ответ
Оценка переменной через Pass By Name
У меня есть сомнения по поводу Pass By Name Procedure test ( int c, int d) { int k = 10; c = 5; d = d + 2 ; k = c + d; print (k); } main() { k = 1; test(k,k); print (k); } Я упоминал один из предыдущих вопросов о том, что такое передача по имени и к…
13 фев '14 в 01:57
2
ответа
По значению и по имени в scala => однозначное соответствие
Если при вызове по значению val f: (Int) => Int = {(i) => {i * i}} # f: Int => Int = <function1> это сокращение для val f: Function1[Int, Int] = {(i) => {i * i}} # f: Int => Int = <function1> тогда при звонке по имени val …
11 май '15 в 11:21
1
ответ
Параметры типа по имени
Представьте, что у меня есть следующее определение класса: class Foo[T] и я хочу сделать следующее def bar(x:Foo[ =>Int ]):Int = ??? Но компилятор не работает с "типом параметра по имени не допускается здесь" Как я могу использовать тип по имени …
16 ноя '12 в 12:00
1
ответ
Разница между вызовом по имени и вызовом по текстовому механизму передачи параметров с примерами
Из 5 типов механизмов передачи параметров: 1. передача по значению 2. передача по ссылке 3. передача по значению 4. передача по тексту (макросы на языке C) 5. передача по значению имя (что-то вроде продолжения) Я просто хочу разницу между последними…
26 июл '15 в 16:35
3
ответа
Определить по параметру, какой элемент изменить
Следующий код Scala дает ошибку компиляции, утверждая, что я не могу присвоить val: Упрощенный пример: class State { val a = 1 val b = 2 def compute( res: =>Int, add : Int ): Unit = { res = add + 123456 } compute(a,b) compute(b,a) } Пример ближе …
22 янв '15 в 13:13