Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2011, 18:37   #211
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я имел в виду кто из ЯП считается хорошим функциональным?я с ними не знаком просто.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.12.2011, 18:41   #212
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Монстры Лисп и Хаскел. Менее известны Scheme (я ссылку давал), OCaml.
Да и вот тут:
http://ru.wikipedia.org/wiki/%D0%AF%...BD%D0%B8%D1%8F
Руби и Питон - смешаные
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 19.12.2011, 19:09   #213
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
так-с, попробую вывести правило на это(пишу типами(в синтаксисе, при присваивании можно x опустить, указав не статический массив)):
Код:
int[x]=int[x] + int;//true
int[x]+=int;//true
int[x]+=string;//false
int[x]=int[x]+int[x];//true
int[x]+=int[x];//true
int[x]+=int[y];//x<y...?
int[x]+=int[y];//x>y...?
то если есть оператор для данных типов, то делаем.
еще поидее можно и так:
Код:
bool[x]=(int[x]==int[x]);//true:)
еще может быть полезно:
Код:
int[x]=string[x].Length;
int[x]=string[x].IndexOf(string[x]);
//равносильно 
//int[x] a;
//foreach(int& t in a;string& s in string[x];string& ss in string[x])t=a.IndexOf(ss);
второй правда не очень красивый пример, но удобен(главное чтоб перегрузки не было, иначе проблема...)
Угу, суть Вы уловили. Насчёт разных размерностей, тут можно по-разному сделать, в D, например, запретили операции над массивами разных размерностей.

Цитата:
Сообщение от Utkin
Пепел Феникса, посмотри как себя ведет функциональный map. Возможно тебе понравится полный вариант больше чем предложенный тобой. Считай это эволюцией for-->foreach-->map
Мне кажется, оба варианта могут сосуществовать параллельно. Map должна быть реализована как часть библиотеки, но не как часть языка, в то время, как векторные операции над массивами, как я говорил ранее, помогут применять некоторые оптимизации.

Пепел Феникса, map похож на ConvertAll в шарпе
Код:
string[] strs = { "12", "32", "43" };
int[] ints = Array.ConvertAll(strs, int.Parse);
То бишь создаёт новую коллекцию, применяя к каждому элементу старой коллекции, ф-цию, переданную вторым параметром. Очень часто это удобно, но семантика немного отличается от foreach, так как суть map - отображение одной коллекции на другую, а не просто перебор элементов коллекции.
netrino вне форума Ответить с цитированием
Старый 19.12.2011, 19:18   #214
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Насчёт разных размерностей, тут можно по-разному сделать, в D, например, запретили операции над массивами разных размерностей.
можно сделать по принципу min(x,y).(а если явно указан размер итога, то если не совпадает с нужным то запретить)
Цитата:
Мне кажется, оба варианта могут сосуществовать параллельно. Map должна быть реализована как часть библиотеки, но не как часть языка, в то время, как векторные операции над массивами, как я говорил ранее, помогут применять некоторые оптимизации.
в принципе да.
насчет map все ясно, я думаю для методов лучше map, а свойства и переменные можно и так:
Код:
int[x]=string[x].Length;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.12.2011, 19:26   #215
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
можно сделать по принципу min(x,y).(а если явно указан размер итога, то если не совпадает с нужным то запретить)
Точно, забыл упомянуть, что в D как раз возможен такой вариант:
Код:
int[] a = [1, 2, 3];
int[] b = [1, 2, 3, 4];
a[] += b[0..3]; // к элементам a прибавятся элементы среза b (с 1-го по 3-й)
netrino вне форума Ответить с цитированием
Старый 19.12.2011, 19:31   #216
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Точно, забыл упомянуть, что в D как раз возможен такой вариант:
тогда отпадает необходимость min, если разные размеры итога, то ошибка(если возможно, то сразу при компиляции)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 19:39   #217
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я еще вот подумал, сборщик это хорошо, но всетаки и нужно иметь право узнать значение счетчика ссылок.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 20:04   #218
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я еще вот подумал, сборщик это хорошо, но всетаки и нужно иметь право узнать значение счетчика ссылок.
Не стоит смешивать. Лучше сделайте подсказку сборщику. Ну там как обычно, var a = new Class(); ..... a = null; и тут уже зависит от вашего сборщика, либо сразу либо когда удобней убить объект по ссылке a. А так если узнать, то тогда конечно можно будет обходить встроенный сборщик, что не есть хорошо при его наличии. Кстати, если все-таки по счетчику решили, то сделайте retain и release ) ну вы поняли. Иногда очень надо клон объекта, но выделение памяти под него и копирование, занимает время, которое совсем не кстати. А почему проблема? Потому что два независимых класса, и другой просто освобождает переданный объект когда надо, в будущем, а передающий сам не знает когда будущее наступит. Поэтому приходиться (в Java) передавать, в принимающем копировать и потом когда-то удалять, а передающему после передачи удалить соответственно. Ну не дело ведь.
BOBAH13 вне форума Ответить с цитированием
Старый 20.12.2011, 20:15   #219
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Не стоит смешивать.
что смешивать?
просто у меня в голове проработалась ситуация что нужно знать, а не хранит ли ссылку ктото кроме нас.
Цитата:
Иногда очень надо клон объекта, но выделение памяти под него и копирование, занимает время, которое совсем не кстати.
клон есть клон, ссылка есть ссылка, разве что подумать о копирующих ссылках(две/более ссылки указывают на один обьект, до первого изменения)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 20:22   #220
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
что смешивать?
просто у меня в голове проработалась ситуация что нужно знать, а не хранит ли ссылку ктото кроме нас.
клон есть клон, ссылка есть ссылка, разве что подумать о копирующих ссылках(две/более ссылки указывают на один обьект, до первого изменения)
Когда кто-то в другом классе к примеру, пакете, модуле и т.д. может узнать кто да еще и сколько используют данный объект, вам не кажется это не правильным? Как по мне так это может подтолкнуть к обходу предоставленный механизмов.

Ну клон да, ну я имел ввиду в моей ситуации как раз копирование по ссылки было бы очень кстати.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли подобный текст перевести на человеческий язык? alexxx777 Помощь студентам 0 24.05.2010 19:56
Как создать вид подобный SolidWorks. KemanSR Общие вопросы C/C++ 6 04.05.2010 21:30
Добавить модуль в phpnuke-подобный движок Able2Know Фриланс 3 23.04.2010 16:29
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55