zarfaz
|
|||||||||||
1 | |||||||||||
Динамически построить функцию, которая будет комбинацией заранее известных функций18.09.2012, 21:14. Показов 569. Ответов 1
Метки нет Все метки)
(
Цель - динамически построить функцию, которая будет комбинацией заранее известных функций.
Проблема - при попытке присвоить анонимному методу новое лямбда выражение от предыдущего (без рекурсии), присваения не происходит, а вместо этого копируется указатель на предедущую функцию, причем только в цикле. Например следующий код вернет первые два элемента списка как и предполагается, а вот третий и четвертый элемент списка будут равны второму (Func1,Func2,Func2.Func2):
|
|
18.09.2012, 21:14 | |
Ответы с готовыми решениями:
1
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции Хранение заранее известных данных в android |
![]() |
|
18.09.2012, 21:25 | 2 |
В первом случае - лямбды не простые, они захватывают локальную переменную i. замыкания
Функции которые вы добавляете в List не вычисляются же сразу и не фиксируются. Они вычисляются только при вызове. То есть для компилятора не важно какое значение имеет i при объявлении, важно только то какое оно имеет при вызове самой функции. Отсюда он может сделать вывод, что все они - на самом деле одна и та же лямбда. Во втором вы просто ошиблись с индексацией в списке. Она начинается с нуля, отсюда и рекурсия.
1
|
18.09.2012, 21:25 | |
Помогаю со студенческими работами здесь
2
Фильтр заранее известных колонок по типу данных Можно ли в кейсы оператора switch() прописывать условия, вместо заранее известных значений ? Написать функцию Факториал и программу, которая будет использовать эту функцию Создать функцию, которая будет вызывать другую функцию Как в функцию передать функцию, которая будет слотом? Решение системы уравнений: написать функцию, которая как параметр будет использовать другую функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |