Функциональное программирование уровня /b/Суп, двач. Есть одна лаба.Запрограммировать на языке Коммон Лисп функцию, принимающую три аргумента:A - двумерный массив, представляющий действительную матрицу размера m×n,v - вектор действительных чисел длины m,j - номер столбца, 0≤j≤n.Т.е. должно быть так: (function #2A((1 2) (3 4) (5 6)) (0 0 0) 0) => #2A((0 1 2) (0 3 4) (0 5 6)Затрудняюсь с алгоритмом и, следовательно, с реализацией. Пока есть такая идея: идём лупом по всем массивам из А, сравниваем номер текущего элемента с j: если совпали, то пишем сначала элемент из v, а за ним - тот, который стоял изначально. Правильно ли думаю? Если да, то как это реализовать?Бампаю котиками.
>>152863132 (OP)>столбец с нулевым номеромА ты неплох, продолжай.
>>152863643Не я это придумал.
>>152863643Вот:Функция должна возвращать новую матрицу размера m×(n+1), полученную вставкой после столбца с номером j нового столбца с элементами из v. j=0 означает вставку перед самым первым столбцом.Исходный массив A должен оставаться неизменным.
>>152863132 (OP)Идешь циклом по первому измерению первого массиваНа каждый i-й ряд вызываешь другую функцию, куда передаешь сам ряд, i-й элемент второго и третий параметрЭта другая функция возвращает новый массив, где уже вставлен новый элемент
>>152863132 (OP)>на языке Коммон ЛиспНу хоть не пасцаль и то хорошо.Не буду тебя нахуй посылать.
Корректировочка.Идём лупом по всем массивам из А, сравниваем номер текущего элемента с j: если совпали, то пишем сначала исходный элемент, а за ним - из v.>>152863931Паскаль у нас в школе был, так что травма у меня уже есть.
А еще более функционально на массив А натравить map
>>152864006>травма у меня уже есть.Так надо было препода нахуй послать и сдавать на тех же сях.Опционально - ебло разбить/настучать в районо.
>>152864243Поподробнее, пожалуйста.
>>152864279Как бы Лисп у нас входит в программу. Предмет называется "функциональное программирование". Зачем на втором курсе давать Scheme, а на третьем - Common Lisp, я не знаю. Думают, что нам это пригодится. Или работают по принципу "Что бы солдат ни делал, лишь бы заебался".
>>152864511>Как бы Лисп у нас входит в программу.Вот дурачок, я про говнопаскаль и дегенерата-препода.А лисп - норм вещь, для учебы вообще ок - если не зацикливаться.>функциональное программированиеОхуенчик, но все же лисп - не совсем то.Он сам по себе.
>>152864687> Вот дурачок, я про говнопаскаль и дегенерата-препода.Туплю. Впрочем, ничего нового.> Охуенчик, но все же лисп - не совсем то.Охуенчик охуенчиком, но у меня висит лаба. Спасайте, котаны.
>>152864972А хуй знает, не писал на лиспе никогда :3Но чую что тут правильно про map - так что читай описание и думай.Такие задачки обычно в пару действий.
>>152863132 (OP)>двумерный массивЕсть один нюанс - в лиспе нет массивов, так что задача поставлена неверно.
>>152865379> Такие задачки обычно в пару действий.Возможно, т.к. лаба средней сложности. Ща погуглю. Вот тебе радостный котик.
>>152865462> в лиспе нет массивовДа ну?http://clhs.lisp.se/Body/f_mk_ar.htm
>>152863132 (OP)Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах - так задачка вообще на пять минут.
>>152864300Я не знаю синтаксиса этих ваших лиспов, но на жабоскрипте будет где-то так:function addArr(a, b, j) { return a.map( (row, i) => { var result = row.slice(0, j).concat(b); return result.concat(row.slice(j)); } )}console.log(addArr([[1,2,3],[4,5,6],[7,8,9]], [99,99,99], 2))
>>152865863Бля, тут http://js.do/code/151837
>>152865715> lurkmore.to/Копипаста:Программирование>>152865928Понятно.
>>152865635В лиспе все есть либо список, либо атом.
>>152866253Знаю. А теперь скажи, как всё это добро замапить.
>>152866352Я так и не понял, что тебе нужно получить.
>>152866575> (function #2A((1 2) (3 4) (5 6)) (0 0 0) 0) => #2A((0 1 2) (0 3 4) (0 5 6)Т.е. было1 23 45 6Стало0 1 20 3 40 5 6Не знаю, как ещё описать.
>>152866575Хотя знаю: >>152865928
ОП, тебе обязательно лисп нужен?
>>152868352Да, в этом проблема.
>>152868388Может, нахуй? Все равно после универна на JS в лучшем случае будешь писать. М?
>>152868613Нет, опции "да ну на хуй" у меня нет. Лабу надо сделать.
>>152868889Бля, ну как хочешь. Я тебе уже и решение малость в функциональном стиле накатал на JS.
>>152869460Мне бы найти способ конвернуть JS в лисп, и будет всё пучком. Увы, ничего толком пока не нагуглил. OpVseRavnoDick надо переправить в OpIsStillADick, ИМХО.
>>152869842Сорян, с утра бы на свежую голову еще перевел в этот твой лисп, но вот вечером после рабочего дня могу разве что еще на C# и F# налабать, не более.
Я такое только баксов за 15 делаю.
>>152870379Поэтому тут сидишь без клиентов?
>>152870493У школьников походу каникулы начались. Летом перехожу на бичпакеты.
>>152870153Когда у тебя утро наступит? Могу фейкомыло оставить.
>>152870614Чем занимаешься? Фрилансишь?
>>152870703Часов через 8. Оставляй.
>>152870719Да, делаю лабы таким как ты, только с деньгами.
>>152870816Я не ОП, лол. А в остальное время?
>>152870911В остальное время пытаюсь превозмогать сдв и учить что-нибудь новое, чтобы делать лабы не за 15 баксов, а за 40. Машобчик, например. Пока вот не особо получается.
>>152870781Отлично, есть стимул встать пораньше. [email protected]
>>152870996Ты молодец. Чем еще владеешь, кроме лиспа?
>>152871217Да я лиспом и не владею, лол. Вряд ли за него платят. Но такую херню разобрать легко, тем более схему я когда-то ковырял.А так на пистоне пишу. С и R учу. Хотя жава и плюсы популярнее.
>>152871357А сколько тебе, если не секрет?
>>15287150922. Так-то в таком возрасте можно было бы уже и мидлом быть, а я лох простой на самом деле.
>>152871669Ебанись, в норм компаниях это еще джун.
>>152871884Да? Я не разбираюсь. Но такое ощущение что можно было бы уже дохуя всего выучить, если бы мог учиться нормально. Ну, и если бы не проебал 4 года на вуз, в надежде что знания сами придут.
>>152871884Вы чё ёбнутые, по возрасту квалификацию определяете?
>>152872234Почему бы и нет.
>>152872221> можно было бы уже дохуя всего выучитьНу это всегда так. Кстати, я бы не думал, что 4 года в универе прошли зря. Если ты реально учился, конечно.>>15287223422 года - обычно выпускник вуза. Какой там норм дев с подобным опытом? Только джун.
>>152872586> 4 года в универе прошли зря. Но ведь говновуз. Сам мог бы выучить намного больше, даже с учетом того что не было бы мотивационного пендаля хотя его и так не было начиная с третьего курса, когда я узнал что у нас не отчисляют
>>152872221> 4 года на вузВ магистратуру не пошёл? Почему?
>>152872426Потому что это не имеет никакого смысла. Это не задводачнин с их разрядами.>>152872586>22 года - обычно выпускник вуза. Какой там норм дев с подобным опытом? Только джун.Программирование идёт уже с класса 5го, за это время может в два года из джунов выйти.
>>152873814Какой в этом смысл?
>>152873814лол, а нахуя идти? ещё пару лет проебать?
>>152873850>>152873887Вот я как раз чешу репу... Мои внутренние математик, физик и программист почти всё забыли и порядком заебались. Думаю: а не сказать ли "Ебись оно всё конём" и пойти служить, благо учусь на военке и к концу 4-го курса заимею звание лейтенанта запаса?
>>152874242магистратура освобождает полностью от воинского призыва?
>>152874541На время учёбы даётся отсрочка. Магистратура, ЕМНИП, её продлевает. Звание лейтенанта запаса даёт тебе военник и, внезапно, звание. Можно будет пойти служить по контракту.
>>152873814>>152874242Я сердечник с белым билетом, вот и не пошел, лол. Все однокуры на магистра только из-за призыва и идут.
>>152874908А мне в военкомате дали Б4 - имею достаточно болячек, но ни одна до В не дотягивает. Вот и пошёл на военку - от нашего факультета желающих было меньше, чем свободных мест, потому прошли все.
Держи, оп, сделал за полтора часа с гугломhttp://rextester.com/FXZM44262(defun insert (seq num index) (cond ((not (null num)) (setq work-index (- (length seq) (length num))) (setq new-sublist (push (car num) (cdr (nthcdr (- index 1) (nth work-index seq))))) (format t "to insert: ~S ; index: ~D;~%" num work-index) (insert seq (cdr num) index))) seq)(print (insert `((1 2 3) (4 5 6) (7 8 9)) `(99 99 99) 2))мимо питонист с 5 летним стажем
>>152876925От души, анончик! Добра тебе!
>>152863132 (OP)А что функция должна делать-то?
>>152877116Какой результат функция должна возвращать? Большой массив или модифицированный прежний?
>>152877182> Большой массивThis.Функция должна возвращать новую матрицу размера m×(n+1), полученную вставкой после столбца с номером j нового столбца с элементами из v. j=0 означает вставку перед самым первым столбцом.Исходный массив A должен оставаться неизменным.
>>152877236Честно говоря, лучше бы ты девственность терял чем эту хуйню задротскую ебал
>>152883355Ноуп, я хочу быть листвой.
>>152863132 (OP)ухты, говорящая рыба CL в b.
>>152884163А то!Будет весело, если тред до утра дотянет.
>>152884042так а в чем проблема, делаешь вставку по i-му индексуg 0 a v = v :: ag j h::tail v = h :: (g j-1 tail v) потом пробегаешься по всем строкамf A vs j = map (g j) $ zip (A vs)