Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > LISP > Циклы в Lisp |
Автор: turtys 26.9.2006, 19:49 |
Как в лисп моэжно организовывать циклы с подобный циклу for(;;) из С++, а то с DO уже намучался до невозможности не пашет и все ( |
Автор: Lisp2D 26.9.2006, 21:07 |
(defmacro for ((i n) &rest tasks) `(do ((,i 0)) ((>= ,i ,n)) ,@tasks)) (for (j (length "abcd")) ...using j... (setf j (1+ j))) |
Автор: Void 26.9.2006, 21:26 | ||
Lisp2D, зачем, если есть loop?
|
Автор: turtys 26.9.2006, 21:49 | ||||
РЕбят что то все рано не получаеться, на С++ набомбил но надо на лиспе
Пытаюсь вот это переписать на лиспе, но пока получилось вот что:
|
Автор: Void 27.9.2006, 01:35 | ||
Очень интересный стиль написания кода на C++. При чтении вызывает желание застрелиться или найти автора и сделать ему… плохо. Метод дихотомии:
|
Автор: turtys 27.9.2006, 17:04 | ||
to Void Спасибо тебе все работает, только не мог бы ты пояснить некоторые строчки: (fx (funcall f x)) я так понял примерно что тут х подставляется в лямбда выражение которое мы пишем в вызове функции, только интересен сам механизм и что значит funcall И еще в конце выводиться ответ, а в каком месте проги прописан вывод этого ответа? И еще я хочу сделать прогу визуальной, и т.е. получиться должно что нибудь типо есть форма на ней кнопка и edit, мы тыркаем на кнопку а результат выводиться в edit, сейчас я попробовал, но не знаю как прописать вывод в edit и вообще ли можно так в лиспе делать. И Void как сделать что бы функция и все параметры в код были вбиты намертво, т.е. мне нужна это прога для определенной функции, и для определенный остальных значений, т.е. погрешность и a и b все задано, как их вбить что бы не надо было каждый раз их вводить, а просто тыркали на кнопку и результат выводился в едит? Для кнопки я прописываю вот так для примера :
|