Сохранен 92
https://2ch.su/b/res/152863132.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним OP 11/05/17 Чтв 21:01:16 #1 №152863132 
.png
Функциональное программирование уровня /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, а за ним - тот, который стоял изначально. Правильно ли думаю? Если да, то как это реализовать?

Бампаю котиками.
Аноним 11/05/17 Чтв 21:02:28 #2 №152863222 
.jpg
Аноним 11/05/17 Чтв 21:02:50 #3 №152863241 
.jpg
Аноним 11/05/17 Чтв 21:03:43 #4 №152863310 
.jpg
Аноним 11/05/17 Чтв 21:05:08 #5 №152863407 
.jpg
Аноним 11/05/17 Чтв 21:07:14 #6 №152863552 
.jpg
Аноним 11/05/17 Чтв 21:07:58 #7 №152863600 
.jpg
Аноним 11/05/17 Чтв 21:08:30 #8 №152863643 
>>152863132 (OP)
>столбец с нулевым номером
А ты неплох, продолжай.
Аноним 11/05/17 Чтв 21:09:18 #9 №152863715 
>>152863643
Не я это придумал.
Аноним 11/05/17 Чтв 21:09:44 #10 №152863741 
>>152863643
Вот:

Функция должна возвращать новую матрицу размера m×(n+1), полученную вставкой после столбца с номером j нового столбца с элементами из v. j=0 означает вставку перед самым первым столбцом.

Исходный массив A должен оставаться неизменным.
Аноним 11/05/17 Чтв 21:11:13 #11 №152863849 
.jpg
Аноним 11/05/17 Чтв 21:11:53 #12 №152863907 
>>152863132 (OP)
Идешь циклом по первому измерению первого массива
На каждый i-й ряд вызываешь другую функцию, куда передаешь сам ряд, i-й элемент второго и третий параметр
Эта другая функция возвращает новый массив, где уже вставлен новый элемент
Аноним 11/05/17 Чтв 21:12:08 #13 №152863931 
>>152863132 (OP)
>на языке Коммон Лисп
Ну хоть не пасцаль и то хорошо.
Не буду тебя нахуй посылать.
Аноним 11/05/17 Чтв 21:13:09 #14 №152864006 
Корректировочка.

Идём лупом по всем массивам из А, сравниваем номер текущего элемента с j: если совпали, то пишем сначала исходный элемент, а за ним - из v.
>>152863931
Паскаль у нас в школе был, так что травма у меня уже есть.
Аноним 11/05/17 Чтв 21:14:31 #15 №152864103 
.png
Аноним 11/05/17 Чтв 21:16:32 #16 №152864243 
А еще более функционально на массив А натравить map
Аноним 11/05/17 Чтв 21:16:54 #17 №152864279 
>>152864006
>травма у меня уже есть.
Так надо было препода нахуй послать и сдавать на тех же сях.
Опционально - ебло разбить/настучать в районо.
Аноним 11/05/17 Чтв 21:17:07 #18 №152864300 
.jpg
>>152864243
Поподробнее, пожалуйста.
Аноним 11/05/17 Чтв 21:19:27 #19 №152864511 
>>152864279
Как бы Лисп у нас входит в программу. Предмет называется "функциональное программирование". Зачем на втором курсе давать Scheme, а на третьем - Common Lisp, я не знаю. Думают, что нам это пригодится. Или работают по принципу "Что бы солдат ни делал, лишь бы заебался".
Аноним 11/05/17 Чтв 21:21:39 #20 №152864687 
>>152864511
>Как бы Лисп у нас входит в программу.
Вот дурачок, я про говнопаскаль и дегенерата-препода.
А лисп - норм вещь, для учебы вообще ок - если не зацикливаться.
>функциональное программирование
Охуенчик, но все же лисп - не совсем то.
Он сам по себе.
Аноним 11/05/17 Чтв 21:25:10 #21 №152864972 
>>152864687
> Вот дурачок, я про говнопаскаль и дегенерата-препода.
Туплю. Впрочем, ничего нового.
> Охуенчик, но все же лисп - не совсем то.
Охуенчик охуенчиком, но у меня висит лаба. Спасайте, котаны.
Аноним 11/05/17 Чтв 21:27:36 #22 №152865149 
.jpg
Аноним 11/05/17 Чтв 21:29:27 #23 №152865313 
.jpg
Аноним 11/05/17 Чтв 21:30:10 #24 №152865379 
>>152864972
А хуй знает, не писал на лиспе никогда :3
Но чую что тут правильно про map - так что читай описание и думай.
Такие задачки обычно в пару действий.
Аноним 11/05/17 Чтв 21:31:15 #25 №152865462 
>>152863132 (OP)
>двумерный массив
Есть один нюанс - в лиспе нет массивов, так что задача поставлена неверно.
Аноним 11/05/17 Чтв 21:32:06 #26 №152865522 
.jpg
>>152865379
> Такие задачки обычно в пару действий.
Возможно, т.к. лаба средней сложности. Ща погуглю. Вот тебе радостный котик.
Аноним 11/05/17 Чтв 21:33:37 #27 №152865635 
>>152865462
> в лиспе нет массивов
Да ну?
http://clhs.lisp.se/Body/f_mk_ar.htm
Аноним 11/05/17 Чтв 21:34:33 #28 №152865715 
>>152863132 (OP)
Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах - так задачка вообще на пять минут.
Аноним 11/05/17 Чтв 21:36:21 #29 №152865863 
>>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))
Аноним 11/05/17 Чтв 21:37:19 #30 №152865928 
>>152865863
Бля, тут http://js.do/code/151837
Аноним 11/05/17 Чтв 21:38:47 #31 №152866056 
>>152865715
> lurkmore.to/Копипаста:Программирование
>>152865928
Понятно.
Аноним 11/05/17 Чтв 21:41:15 #32 №152866253 
>>152865635
В лиспе все есть либо список, либо атом.
Аноним 11/05/17 Чтв 21:42:16 #33 №152866352 
>>152866253
Знаю. А теперь скажи, как всё это добро замапить.
Аноним 11/05/17 Чтв 21:44:37 #34 №152866575 
>>152866352
Я так и не понял, что тебе нужно получить.
Аноним 11/05/17 Чтв 21:45:52 #35 №152866693 
>>152866575
> (function #2A((1 2) (3 4) (5 6)) (0 0 0) 0) => #2A((0 1 2) (0 3 4) (0 5 6)
Т.е. было
1 2
3 4
5 6
Стало
0 1 2
0 3 4
0 5 6
Не знаю, как ещё описать.
Аноним 11/05/17 Чтв 21:46:20 #36 №152866738 
>>152866575
Хотя знаю: >>152865928
Аноним 11/05/17 Чтв 21:50:26 #37 №152867088 
.jpg
Аноним 11/05/17 Чтв 21:52:24 #38 №152867266 
.jpg
Аноним 11/05/17 Чтв 21:54:22 #39 №152867477 
.jpg
Аноним 11/05/17 Чтв 21:56:24 #40 №152867652 
.jpg
Аноним 11/05/17 Чтв 22:00:04 #41 №152867969 
.jpg
Аноним 11/05/17 Чтв 22:01:24 #42 №152868094 
.jpg
Аноним 11/05/17 Чтв 22:03:17 #43 №152868271 
.jpg
Аноним 11/05/17 Чтв 22:04:15 #44 №152868352 
ОП, тебе обязательно лисп нужен?
Аноним 11/05/17 Чтв 22:04:39 #45 №152868388 
>>152868352
Да, в этом проблема.
Аноним 11/05/17 Чтв 22:07:03 #46 №152868613 
>>152868388
Может, нахуй? Все равно после универна на JS в лучшем случае будешь писать. М?
Аноним 11/05/17 Чтв 22:10:19 #47 №152868889 
>>152868613
Нет, опции "да ну на хуй" у меня нет. Лабу надо сделать.
Аноним 11/05/17 Чтв 22:12:37 #48 №152869103 
.jpg
Аноним 11/05/17 Чтв 22:15:25 #49 №152869383 
.jpg
Аноним 11/05/17 Чтв 22:16:11 #50 №152869460 
dvach.png
>>152868889
Бля, ну как хочешь. Я тебе уже и решение малость в функциональном стиле накатал на JS.
Аноним 11/05/17 Чтв 22:20:08 #51 №152869842 
>>152869460
Мне бы найти способ конвернуть JS в лисп, и будет всё пучком. Увы, ничего толком пока не нагуглил. OpVseRavnoDick надо переправить в OpIsStillADick, ИМХО.
Аноним 11/05/17 Чтв 22:23:24 #52 №152870153 
14717185867040.jpg
>>152869842
Сорян, с утра бы на свежую голову еще перевел в этот твой лисп, но вот вечером после рабочего дня могу разве что еще на C# и F# налабать, не более.
Аноним 11/05/17 Чтв 22:25:44 #53 №152870379 
Я такое только баксов за 15 делаю.
Аноним 11/05/17 Чтв 22:26:59 #54 №152870493 
>>152870379
Поэтому тут сидишь без клиентов?
Аноним 11/05/17 Чтв 22:28:16 #55 №152870614 
>>152870493
У школьников походу каникулы начались. Летом перехожу на бичпакеты.
Аноним OP 11/05/17 Чтв 22:29:13 #56 №152870703 
>>152870153
Когда у тебя утро наступит? Могу фейкомыло оставить.
Аноним 11/05/17 Чтв 22:29:24 #57 №152870719 
>>152870614
Чем занимаешься? Фрилансишь?
Аноним 11/05/17 Чтв 22:30:02 #58 №152870781 
>>152870703
Часов через 8. Оставляй.
Аноним 11/05/17 Чтв 22:30:21 #59 №152870816 
>>152870719
Да, делаю лабы таким как ты, только с деньгами.
Аноним 11/05/17 Чтв 22:31:28 #60 №152870911 
>>152870816
Я не ОП, лол. А в остальное время?
Аноним 11/05/17 Чтв 22:32:36 #61 №152870996 
>>152870911
В остальное время пытаюсь превозмогать сдв и учить что-нибудь новое, чтобы делать лабы не за 15 баксов, а за 40. Машобчик, например. Пока вот не особо получается.
Аноним OP 11/05/17 Чтв 22:33:02 #62 №152871041 
>>152870781
Отлично, есть стимул встать пораньше. [email protected]
Аноним 11/05/17 Чтв 22:34:56 #63 №152871217 
>>152870996
Ты молодец. Чем еще владеешь, кроме лиспа?
Аноним 11/05/17 Чтв 22:36:40 #64 №152871357 
>>152871217
Да я лиспом и не владею, лол. Вряд ли за него платят. Но такую херню разобрать легко, тем более схему я когда-то ковырял.
А так на пистоне пишу. С и R учу. Хотя жава и плюсы популярнее.
Аноним 11/05/17 Чтв 22:38:35 #65 №152871509 
>>152871357
А сколько тебе, если не секрет?
Аноним 11/05/17 Чтв 22:40:16 #66 №152871669 
>>152871509
22. Так-то в таком возрасте можно было бы уже и мидлом быть, а я лох простой на самом деле.
Аноним 11/05/17 Чтв 22:42:31 #67 №152871884 
>>152871669
Ебанись, в норм компаниях это еще джун.
Аноним 11/05/17 Чтв 22:46:19 #68 №152872221 
>>152871884
Да? Я не разбираюсь. Но такое ощущение что можно было бы уже дохуя всего выучить, если бы мог учиться нормально. Ну, и если бы не проебал 4 года на вуз, в надежде что знания сами придут.
Аноним 11/05/17 Чтв 22:46:23 #69 №152872234 
>>152871884
Вы чё ёбнутые, по возрасту квалификацию определяете?
Аноним 11/05/17 Чтв 22:48:13 #70 №152872426 
>>152872234
Почему бы и нет.
Аноним 11/05/17 Чтв 22:49:42 #71 №152872586 
>>152872221
> можно было бы уже дохуя всего выучить
Ну это всегда так. Кстати, я бы не думал, что 4 года в универе прошли зря. Если ты реально учился, конечно.
>>152872234
22 года - обычно выпускник вуза. Какой там норм дев с подобным опытом? Только джун.
Аноним 11/05/17 Чтв 22:52:13 #72 №152872843 
>>152872586
> 4 года в универе прошли зря.
Но ведь говновуз. Сам мог бы выучить намного больше, даже с учетом того что не было бы мотивационного пендаля хотя его и так не было начиная с третьего курса, когда я узнал что у нас не отчисляют
Аноним 11/05/17 Чтв 23:01:17 #73 №152873814 
>>152872221
> 4 года на вуз
В магистратуру не пошёл? Почему?
Аноним 11/05/17 Чтв 23:01:25 #74 №152873825 
>>152872426
Потому что это не имеет никакого смысла. Это не задводачнин с их разрядами.
>>152872586
>22 года - обычно выпускник вуза. Какой там норм дев с подобным опытом? Только джун.
Программирование идёт уже с класса 5го, за это время может в два года из джунов выйти.
Аноним 11/05/17 Чтв 23:01:48 #75 №152873850 
>>152873814
Какой в этом смысл?
Аноним 11/05/17 Чтв 23:02:15 #76 №152873887 
>>152873814
лол, а нахуя идти? ещё пару лет проебать?
Аноним 11/05/17 Чтв 23:06:09 #77 №152874242 
>>152873850
>>152873887
Вот я как раз чешу репу... Мои внутренние математик, физик и программист почти всё забыли и порядком заебались. Думаю: а не сказать ли "Ебись оно всё конём" и пойти служить, благо учусь на военке и к концу 4-го курса заимею звание лейтенанта запаса?
Аноним 11/05/17 Чтв 23:09:18 #78 №152874541 
>>152874242
магистратура освобождает полностью от воинского призыва?
Аноним 11/05/17 Чтв 23:12:33 #79 №152874839 
>>152874541
На время учёбы даётся отсрочка. Магистратура, ЕМНИП, её продлевает. Звание лейтенанта запаса даёт тебе военник и, внезапно, звание. Можно будет пойти служить по контракту.
Аноним 11/05/17 Чтв 23:13:22 #80 №152874908 
>>152873814
>>152874242
Я сердечник с белым билетом, вот и не пошел, лол. Все однокуры на магистра только из-за призыва и идут.

Аноним 11/05/17 Чтв 23:16:47 #81 №152875253 
.jpg
>>152874908
А мне в военкомате дали Б4 - имею достаточно болячек, но ни одна до В не дотягивает. Вот и пошёл на военку - от нашего факультета желающих было меньше, чем свободных мест, потому прошли все.
Аноним 11/05/17 Чтв 23:36:01 #82 №152876925 
Держи, оп, сделал за полтора часа с гуглом
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 летним стажем
Аноним OP 11/05/17 Чтв 23:38:36 #83 №152877116 
.jpg
>>152876925
От души, анончик! Добра тебе!
Аноним 11/05/17 Чтв 23:39:28 #84 №152877178 
>>152863132 (OP)
А что функция должна делать-то?
Аноним 11/05/17 Чтв 23:39:28 #85 №152877182 
>>152877116
Какой результат функция должна возвращать? Большой массив или модифицированный прежний?
Аноним OP 11/05/17 Чтв 23:40:07 #86 №152877236 
>>152877182
> Большой массив
This.


Функция должна возвращать новую матрицу размера m×(n+1), полученную вставкой после столбца с номером j нового столбца с элементами из v. j=0 означает вставку перед самым первым столбцом.

Исходный массив A должен оставаться неизменным.
Аноним 12/05/17 Птн 01:04:32 #87 №152882841 
Аноним 12/05/17 Птн 01:14:07 #88 №152883355 
>>152877236
Честно говоря, лучше бы ты девственность терял чем эту хуйню задротскую ебал
Аноним OP 12/05/17 Птн 01:27:18 #89 №152884042 
>>152883355
Ноуп, я хочу быть листвой.
Аноним 12/05/17 Птн 01:30:09 #90 №152884163 
>>152863132 (OP)
ухты, говорящая рыба CL в b.
Аноним 12/05/17 Птн 01:33:20 #91 №152884280 
>>152884163
А то!

Будет весело, если тред до утра дотянет.
Аноним 12/05/17 Птн 01:40:24 #92 №152884594 
>>152884042
так а в чем проблема, делаешь вставку по i-му индексу
g 0 a v = v :: a
g j h::tail v = h :: (g j-1 tail v)
потом пробегаешься по всем строкам
f A vs j = map (g j) $ zip (A vs)
comments powered by Disqus