LINUX.ORG.RU

Code review

 , ,


1

2

Продолжаю изучать лисп, пока еще нахожусь в самом-самом начале пути. Вот накидал классику - вычисление корней квадратного уравнения ( http://pastebin.com/HZrUN02k ).

С удовольствием выслашую советы как по оформлению кода, так и по реализации. Единственное дополнение - я использую табы шириной в 4 символа, но не нашел, как выставить ширину табов на pasterbin.com

Меня больше всего смущает возврат значения из функции calcX, мне кажется, что я это делаю не совсем верно.

Новая версия http://pastebin.com/h61E3gE1

Новая версия http://pastebin.com/mKJgvdAp

★★★★★

Последнее исправление: trex6 (всего исправлений: 4)
Ответ на: комментарий от trex6

В форматировании. Канонично вот так:

(let ((d (- (* b b) (* 4 a c)))
      (x 0))
...

Не бойся запутаться в скобочках, уже через неделю будешь нормально в них ориентироваться.

yoghurt ★★★★★
()
Ответ на: комментарий от anonymous

Можно подумать, он лисп учит, чтобы программы на нем писать?

А зачем? Чтобы наваристый мамкин борщ не приедался?

Virtuos86 ★★★★★
()
Ответ на: комментарий от trex6

Суть не в параметрах, а в том, что в половине реализаций он работает через жопу, когда читает данные с терминала (т.е. из стандартного потока, когда он не связан там со всякими пайпами). В sbcl, например, было такое вроде, что если вывод туда сделаешь небольшой без force/finish-output, то оно на экран не попадает и потом читается read'ом.

shamaz
()
Ответ на: комментарий от yoghurt

Да никогда не будешь без нормального редактора, таки вот в чём дело

shamaz
()
Ответ на: комментарий от trex6

Какой эффект?

Ощущение «просветления» и избранности.

Ведь ты изучаешь LISP не для того, чтобы профессионально программировать на нем (он непригоден для этого). Ты изучаешь его, чтобы выделиться. Чтобы возвыситься в своих глазах над серой массой «ремесленников от IT». Чтобы причаститься сакрального знания и почувствовать себя избранным.

Ты можешь возражать, что LISP — это «just for fun» и для расширения кругозора. Но это будет ложь. Не лги самому себе; для расширения кругозора люди читают книги, ходят в музеи, на лекции, интересуются науками, изучают иностранные языки и путешествуют по миру; «just for fun» — занимаются музыкой, спортом, активными хобби, общаются с друзьями и близкими, встречаются с девушками.

Изучение LISP же преследует единственную цель — выделиться, продемонстрировать, что ты не такой, как все. Это порочный путь. Чем это лучше покупки айфона или зеркалки? Модных очков, обтягивающих ярких штанов и кед? Большого блестящего автомобиля?

Я не говорю, что не надо выделяться. Надо! Все люди уникальны, у каждого есть что-то свое, и это надо подчеркивать. Настоящий, мужской путь — выделяться за счет собственных качеств и достижений.

Дерзай.

anonymous
()
Ответ на: комментарий от trex6

Пока еще только до 6-ой главы дошел.

Обычно просветление наступает после того, как ознакомишься с анафорическими макросами. Они описаны в Let Over Lambda, ch. 6.

anonymous
()
Ответ на: комментарий от anonymous

Чем это лучше покупки айфона или зеркалки? Модных очков, обтягивающих ярких штанов и кед? Большого блестящего автомобиля?

Ну как будто ты сам не знаешь. Хотя бы тем, что на это не надо денег (которых у борщехлебов в любом случае не густо).

anonymous
()
Ответ на: комментарий от anonymous

Ну как будто ты сам не знаешь. Хотя бы тем, что на это не надо денег (которых у борщехлебов в любом случае не густо).

Это да. И ещё этот путь очень простой, ведь в лишпеге по сути нет ничего сложного. А умения и способности развивать надо, силы тратить, время. Упорным надо быть. Силу воли иметь.

А тут — знай валяйся на диване, почитывай про анафорические лямбды да похлёбывай борщок.

anonymous
()
Ответ на: комментарий от anonymous

для расширения кругозора люди читают книги, ходят в музеи, на лекции, интересуются науками, изучают иностранные языки и путешествуют по миру

Ну вот есть же сообщества ёбнутых эсперантистов, толкиенистов-дивнюков и так далее. Лисперы примерно то же самое, что ты привязался к пацану? Пускай сидит ботает свои анафоры, лишь бы лампочки в подъезде не бил, не нюхал спиды, в «Наши» не вступал и в прочее дерьмо.

anonymous
()
Ответ на: комментарий от shamaz

Почему так лучше?

Мне показалось, что удобнее вернуть лист, тем более, если в будущем расширить функцию до нахожения крней уравнения произволной степени. Листом ты возвращаешь все результаты,а множественные значения - тебе придется гадать, сколько их вернула функция.

P.S. К тому же про возврат множественных значений я узнал позднее.

trex6 ★★★★★
() автор топика
Ответ на: комментарий от shamaz

В нормальных программах вообще редко используется чтение данных с терминала. Во всяком случае когда я изучал Pascal/C/C++/Java на этапе изучаения все читалось из терминала, но когда дошло дело до реальных задач, терминал испоьзовался только как вывод отладочной информации и, иногда, результата. Так что за это можно не боятся.

trex6 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

И вам доброго вечера. До сих пор не понимаю того отважного напора с которым вы стремитесь отговорить меня изучат лисп. И ведь все мы понимаем, что изучение лиспа это не такой длительный процесс, который занимает все свободное время на протяжении месяцев или даже заставляет потратить на себя годы. Суммарно это 3-4 полных дня. Не такая и большая цена. Стандартная для языка программирования цена, я бы сказал.

Не лги самому себе; для расширения кругозора люди читают книги, ходят в музеи, на лекции, интересуются науками, изучают иностранные языки и путешествуют по миру
читают книги, интересуются науками, изучают иностранные языки

А как вы думаете, каким образом я изучаю лисп?

Сухой итог: лисп я изучаю потому, что он был следующем в списке языков, которые я собираюсь изучить. А ваши попытки поставить диагноз по одному слову lisp выглядят смешно. Но за ваши замечательные пассажи о борщах, которые порой затавляют смеяться в голос, я готов и дальше видеть вас в своих тредах. Главное - не останавливайтесь. Боршь скоро всем приестся, приходит время для новых колкостей.

В любом случае знайте, вы здесь - желанный гость.

P.S.

ведь в лишпеге по сути нет ничего сложного

и это _абсолютно_ верно. Просто изучить еще один язык, окунуться в иторию. После лиспа на очереди фортран ))

trex6 ★★★★★
() автор топика
Последнее исправление: trex6 (всего исправлений: 1)
Ответ на: комментарий от trex6

Суммарно это 3-4 полных дня.
потому, что он был следующем в списке языков
окунуться в иторию. После лиспа на очереди фортран

Пффф, ну, это совсем другое дело. Если это действительно сродни походу в музей/кунсткамеру и не займет много времени — тогда поддерживаю и желаю удачи :)

Боршь скоро всем приестся, приходит время для новых колкостей.

Уж не сомневайтесь, их есть у меня ;-)

anonymous
()
Ответ на: комментарий от trex6

Мне показалось, что удобнее вернуть лист, тем более, если в будущем расширить функцию до нахожения крней уравнения произволной степени.

Об этом ты не писал. А когда известна (небольшая) верхняя граница количества возвращаемых аргументов - то values, так как значения его обычно возвращаются на стеке кроме всего прочего. Ну а вообще, это просто удобно: можно откинуть все значения после первого (самого важного), можно делать multiple-value-bind итд.

shamaz
()
Ответ на: комментарий от trex6

Мне показалось, что удобнее вернуть лист, тем более, если в будущем расширить функцию до нахожения крней уравнения произволной степени. Листом ты возвращаешь все результаты,а множественные значения - тебе придется гадать, сколько их вернула функция.

Тогда и входящий интерфейс сразу на произвольную степень делай. Или через &rest или сразу требуй список, а лучше --- вектор. Да, и сразу тогда уж глянь multiple-value-list, multiple-value-call и nth-value.

anonymous
()
Ответ на: комментарий от trex6

До сих пор не понимаю того отважного напора с которым вы стремитесь отговорить меня изучат лисп.

Потому что лисп приводит к необратимым изменениям в психике. Посмотри на лисперов: видишь среди них хоть одного нормального? Понятно, что correlation does not imply causation, но на всякий случай стоит поостеречься, а вдруг они такими не были изначально, но стали из-за лиспа?

Вдруг без лиспа золотце не был бы фашистегом, mv не падал бы каждый день вниз головой с велосипеда и не лгал бы про кодерящих fpga на лиспе трейдеров, луговский не работал бы в макдональдсе в 35 лет, лавсанчег не сидел бы на тяжелых веществах?

После лиспа на очереди фортран ))

Если уж совсем историей интересуешься, изучай лучше Plankalkül.

anonymous
()
Ответ на: комментарий от anonymous

Потому что лисп приводит к необратимым изменениям в психике.

Серьёзно. Этот анон — наглядный тому пример.

ilammy ★★★
()
Ответ на: комментарий от pseudo-cat

Привычка - вторая натура, а я уже 7 лет на С/C++.

Будем пробовать переучиваться.

trex6 ★★★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Нельзя просто так взять и бросить вещества. Ущерб, причиненный веществами нервной системе, все равно останется навсегда.

anonymous
()
Ответ на: комментарий от pseudo-cat

Ты кто такой? Я тебя не знаю. Но если ты лиспер, то ты наверняка ненормален, просто для постановки точного диагноза надо понаблюдать тебя диспансерно.

anonymous
()

возьми редактор с нормальным форматированием и не делай так больше

lazyklimm ★★★★★
()
Ответ на: комментарий от pseudo-cat

А, нашел. Ты решал систему из трех уравнений с двумя неизвестными. Школу, стало быть, прогуливал. А это значит - или бухал, или уже тогда на веществах сидел.

anonymous
()
Ответ на: комментарий от lazyklimm

Все зло в мире совершается ненормальными. Нормальные люди вреда окружающим не приносят. Ну и, честно говоря, до дрожи раздражают любые проявления ненормальности, любые отклонения. Неужели так сложно быть как все?!?

anonymous
()
Ответ на: комментарий от pseudo-cat

в этом то и суть, что людям свойственно вешать ярлыки)

Слышал такие слова, как «корреляция», «симптом», «группа риска»? Или тебе на детсадовском уровне объяснить, если по-взрослому не доходит?

anonymous
()
Ответ на: комментарий от anonymous

зло

экими вы тут категориями оперируете! Зачот!

Неужели так сложно быть как все?!?

а зачем?

Нормальные люди вреда окружающим не приносят.

из этого следует, что нормальные люди в меньшинстве. ВП как они есть.

lazyklimm ★★★★★
()
Ответ на: комментарий от anonymous

Ну и, честно говоря, до дрожи раздражают любые проявления ненормальности, любые отклонения.

Ты ненормален :)

yyk ★★★★★
()
Ответ на: комментарий от anonymous

кстати нет, на 1 курсе я умел решать системы уравнений, просто прошло 6 лет и за ненадобностью я забыл про это) Веган?

pseudo-cat ★★★
()
Ответ на: комментарий от anonymous

Неужели так сложно быть как все?!?

И жрать все, что дают? И ходить строем? И молится, постится и слушать радио «Радонеж»?

gensym ★★
()
Ответ на: комментарий от yyk

Ты ненормален :)

А вот и не надо. Я изучал этот вопрос: раздражение на ненормальность это как раз и есть самая нормальная реакция, и эволюционная антропология это дело неплохо объясняет. Это необходимый защитный механизм, своего рода иммунитет, который вырабатывают почти все социальные виды.

anonymous
()
Ответ на: комментарий от gensym

И жрать все, что дают?

Нет, жрать то, что жрут все, то есть, полезную и здоровую кухню, типичную для твоего региона. И не выпендриваться с суши и мате, как всякие вонючие хипстеры.

И ходить строем?

Где ты видел, чтобы все ходили строем?!?

anonymous
()
Ответ на: комментарий от anonymous

Изучение LISP же преследует единственную цель — выделиться, продемонстрировать, что ты не такой, как все. Это порочный путь. Чем это лучше покупки айфона или зеркалки? Модных очков, обтягивающих ярких штанов и кед? Большого блестящего автомобиля?

такой чудесный вброс и до сих пор не начался лиспосрач!? не торт!

Rastafarra ★★★★
()
Ответ на: комментарий от lazyklimm

из этого следует, что нормальные люди в меньшинстве.

По определению, нормальные в большинстве. А вредят как раз ненормальные, с отклонениями в любую сторону от нормы. Склонность к криминалу - отклонение, причем неплохо уже изученное. Тяга к власти - тоже отклонение, альфы в любом сообществе в меньшинстве. Гениальность - отклонение, причем крайне опасное, а польза от так называемых «гениев» для человечества сомнительна. Разные формы интеллектуальной неполноценности тоже отклонения, и тоже опасные для окружающих.

А нормальные люди следуют нормальной для своего общества морали и не имеют причин от нее отклоняться. Нормальные люди нормально делают свое дело, от них можно ожидать конкретного результата. Нормальные люди не подводят.

anonymous
()
Ответ на: комментарий от anonymous

не выпендриваться с суши

а мне нра

хипстеры

что в них плохого?

Где ты видел, чтобы все ходили строем?!?

Ты же всех хочешь под одну гребенку причесать

gensym ★★
()
Ответ на: комментарий от gensym

Про радио «Радонеж» я не слышал даже от самых набожных бабулек, это какой-то мем из интернета, а не реально популярное явление.

И что плохого в принадлежности к господствующей религии в своем обществе? Все не-православные, кого я встречал, свою не-православность явно используют исключительно как способ выделиться. А, как я уже говорил, само стремление выделиться это уже плохо и опасно.

anonymous
()
Ответ на: комментарий от anonymous

По определению, нормальные в большинстве

именно

А вредят как раз ненормальные

вредит как раз большинство, на улицу выйди

Склонность к криминалу - отклонение, причем неплохо уже изученное

ты про убийства, грабежи и прочие тяжкие преступления? Так то понятно. Фигня в том, что вредят по мелочи.

lazyklimm ★★★★★
()
Ответ на: комментарий от anonymous

Это необходимый защитный механизм, своего рода иммунитет, который вырабатывают почти все социальные виды.

Это «необходимый защитный механизм» при условии отсутствия мозгов, иначе «на костёр» идут все гении, иные расы, нации, а нередко - даже соседи. Но если тебе это ближе...

yyk ★★★★★
()
Ответ на: комментарий от gensym

что в них плохого?

Ну так мразь же. Хуже чем в свое время были репперы, панки, хиппи и металлисты.

Ты же всех хочешь под одну гребенку причесать

Интересное у тебя представление о норме.

anonymous
()
Ответ на: комментарий от yyk

иначе «на костёр» идут все гении,

И это было бы прекрасно

иные расы, нации,

Танцпол комментировать не буду, надеюсь, сам догадаешься, каково мое мнение по этому вопросу.

anonymous
()
Ответ на: комментарий от anonymous

альфы в любом сообществе в меньшинстве

В школе шпыняли? Теперь все понятно, откуда такая желчь на все, что не вкладывается в сознание «обиженного». Пациент уже готов, забирайте же!

gensym ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.