Следующая страница > 1 < [2]

Автор Сообщение

finticul

Members


Статус

8 сообщений

Где: Russia
Род занятий:
Возраст:

#3997   2011-03-12 22:41 GMT+3 часа(ов)      
Здравствуйте!

Подскажите, пожалуйста.
Если попробовать запустить программы из этой главы на dr.Racket, то они не запустятся.
...получается только если включить язык LazyRacket.

Почему же не получается на других языках, скажем на R5S5?
Это из-за аппликативного порядка вычислений?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#3999   2011-03-13 02:15 GMT+3 часа(ов)      
> Если попробовать запустить программы из этой главы на dr.Racket, то они не запустятся.
Какой у Вас выбран язык? Как Вы его выбираете? Какие примеры не запускаются?

> Почему же не получается на других языках, скажем на R5S5?
Впервые о таком слышу)

> Это из-за аппликативного порядка вычислений?
В Схеме присутствуют костыли для ленивых вычислений.

finticul

Members


Статус

8 сообщений

Где: Russia
Род занятий:
Возраст:

#4001   2011-03-13 17:14 GMT+3 часа(ов)      
Заранее скажу, все мои знания пока ограничены полутороразовым прочтением четырёх глав SICP.)
Не хватает времени, чтобы читать больше, поэтому и спрашиваю у знающих людей.

Вот примеры
;Syntaxis
(define (cons-stream a b)
(cons a (delay2 b))) ;delay2 и force2 - чтобы не повторять встроенных.
 
(define (stream-car stream) (car stream))
(define (stream-cdr stream) (force2 (cdr stream)))
 
(define (delay2 X) (lambda () X))
(define (force2 X) (X))
 
(define (print-stream stream n-members)
(if (= n-members 0)
'done
(begin (display (stream-car stream))
(display ";")
(print-stream (stream-cdr stream) (- n-members 1)))))
 
;stream-examples
(define ones (cons-stream 1 ones))
(define (integers-starting-from n)
(cons-stream n (integers-starting-from (+ n 1))))
 
(print-stream ones 10)
(print-stream (integers-starting-from 1) 10)
;--------------------------------------------------------

Выбираем язык (ctrl+l) Lazy Racket - всё получается
Выбираем R5S5 - в результате получаем:
сообщение: reference to undefined identifier: ones
или, если уберём ones, бесконечный цикл.


"костыли" для ленивых вычислений - не понял что это. Как их приделать?

Вообще, мне это необходимо для упражнений с запросной системой (SICP 4.4.4), там нужны таблицы, потоки и интерпретатор. Вроде всё напечатал, но из-за загвоздки с потоками не могу пойти дальше и запустить интерпретатор языка запросов. Так что, вопросов, наверняка, будет много. Пробую решать всё сам, но иногда трудно, т.к нет ни одного знакомого программиста, к тому же "Схемера".

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#4002   2011-03-13 20:23 GMT+3 часа(ов)      
> delay2 и force2 - чтобы не повторять встроенных.
Ваш препод идиот, если он поручил это задание студенту не владеющему азами.
delay всегда реализовывался как макрос.
(define-syntax delay2
(syntax-rules ()
((_ X) (lambda () X))))


Само определение ones
(define ones (cons-stream 1 ones))
намекает на то, что cons-stream необходимо реализовать как макрос.
(define-syntax cons-stream
(syntax-rules ()
((_ a b) (cons a (delay2 b)))))


> Выбираем язык (ctrl+l) Lazy Racket - всё получается
Конечно получается, ведь в Lazy Racket нормальный порядок редукции.

> Выбираем R5S5 - в результате получаем:
Такого языка не существует!

> "костыли" для ленивых вычислений - не понял что это. Как их приделать?
Под "костылями" я имел ввиду delay и force.

finticul

Members


Статус

8 сообщений

Где: Russia
Род занятий:
Возраст:

#4003   2011-03-13 21:32 GMT+3 часа(ов)      
Извиняюсь, правильно R5RS.
Пожалуй, идиот здесь только я, так как занимаюсь самостоятельно без преподавателя.
Я читаю SICP и пытаюсь делать всё по книге. До этого я вполне справлялся с потоками, используя LazyRacket,
затем, выполняя упражнение, организовал интерпретатор, в котором можно было выбирать порядок редукции для аргументов и где работали все упражнения из книги по потокам.
Теперь застрял на интерпретаторе системы запросов, где используются таблицы, потоки, и сам интерпретатор.
И всё это вместе у меня не работает... ну, ладно, придётся пока отложить.

Что следует ещё почитать?
"How to Design Programs" - будет достаточно для новичка?

Спасибо за ответы.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#4004   2011-03-14 17:42 GMT+3 часа(ов)      
> Пожалуй, идиот здесь только я, так как занимаюсь самостоятельно без преподавателя.
Я тоже изучал самостоятельно.

> Теперь застрял на интерпретаторе системы запросов, где используются таблицы, потоки, и сам интерпретатор.
И всё это вместе у меня не работает... ну, ладно, придётся пока отложить.

Оно и не будет работать) Т.к. СИКП требует глубокой проработки примеров и текста, т.е. копипаст не пройдет!)

> Что следует ещё почитать?
"How to Design Programs" - будет достаточно для новичка?

Все зависит от Вашего опыта. Можете еще скачать книги для начинающих с моего ftp-сервера(написанного на racket). Ссылка для Вашего браузера: ftp://81.177.159.170/Books/Introductory/

finticul

Members


Статус

8 сообщений

Где: Russia
Род занятий:
Возраст:

#4006   2011-03-17 00:34 GMT+3 часа(ов)      
Спасибо большое.
Книги хорошие (только "The Seasoned Schemer" - повреждённый файл).
Теперь будет чем заняться ближайшие несколько лет.

отредактировал(а) finticul: 2011-03-17 00:46 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#4008   2011-03-17 02:00 GMT+3 часа(ов)      
> только "The Seasoned Schemer" - повреждённый файл
Файл нормальный, попробуйте скачать снова.

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5521   2012-01-15 02:19 GMT+3 часа(ов)      
извините, а у меня ссылка на книги не открывается ни в одном из трёх броузеров . они переведены на русский? я скачал сам книгу по лиспу, но насколько она будет актуальна к racket? надеюсь функций не много урезали?

отредактировал(а) Hret: 2012-01-15 02:24 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5523   2012-01-16 01:28 GMT+3 часа(ов)      
> извините, а у меня ссылка на книги не открывается ни в одном из трёх броузеров

Я давно уже завершил тестирование своего сервера.

> они переведены на русский?
Нет.

> я скачал сам книгу по лиспу, но насколько она будет актуальна к racket?

Эту книгу? Вам подойдет "The Little Schemer", т.к. она ориентирована на начинающих. Вообще написано довольно много учебников по программированию на Scheme, можете выбрать любой в зависимости от вашей подготовки. Имхо, до Racket вы еще недоросли.

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5526   2012-01-17 01:31 GMT+3 часа(ов)      
если ваша ссылка уже не работает, значит я не могу знать эту книгу я скачал или нет. судя по тому что ваши книги не переведены на русский-я скачал не эту книгу. в ваших оценках:
Цитата
misha :
до Racket вы еще недоросли.

,относительно моего статуса среди недорослей , я не нуждаюсь, если он вас так беспокоит-это основная среда вашего внимания. у вас есть литература по Racket на русском? сильно отличается Racket от Lisp?

отредактировал(а) Hret: 2012-01-17 01:42 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5528   2012-01-17 18:36 GMT+3 часа(ов)      
> относительно моего статуса среди недорослей , я не нуждаюсь

Racket произошел от Scheme (и во многом его повторяет), поэтому, чтобы не создавать велосипеды, вам необходимо сперва изучить последний.

> если он вас так беспокоит-это основная среда вашего внимания.

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

> у вас есть литература по Racket на русском?

Нет.

> сильно отличается Racket от Lisp?

Да, но, имхо, в лучшую сторону.

отредактировал(а) misha: 2012-01-17 18:44 GMT+3 часа(ов)

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5530   2012-01-17 22:43 GMT+3 часа(ов)      
Цитата
misha :

Да, но, имхо, в лучшую сторону.


не факт( но я не знаю что изменили), потому что лисп разрабатывался специально для АИ. функционал лиспа урезали каким нибудь образом в этих ветках? вы думаете что я не осилю понятие атома, которого нет в схеме, или что-то другое?
понятие я осилю любое в информатике и программировании и не только, даже если повезёт то могу с высокой вероятностью правильно оценить ценность впервые встреченого понятия и применить его (первый опыт в детстве , возможно он был и последним, если вы думали что я тролю, понятие телепатии, но я не могу подтвердить что я не спал тогда, но ответил я точно тем же способом, которым меня приветствовали, не размышляя долго, потом был диалог,объект был виден только мне, хотя я не мог дать тогда определение этому, так как в СССР, а я и в школу ещё не ходил, это было наверное самое страшное из моего детства, сейчас то я другой, но всё равно удивляет как я с ним заговорил телепатически вообще, а не начал тупо арать и выть или звать на помощь и жаловаться, позже я пожаловался, и заставил своего деда три дня или 2 проходить с топором, и сам далеко от него не отходил. насчёт веществ, думаю возможно, если таковые применялись после этого против моего умения или явления ,в секрете от меня. .и не предполагал что есть язык лисп, я не искал язык для кодинга АИ, я знал что мне нужно и искал функционал, и только так нашёл искомое в ворохе гуглоинфы), кроме тех случаев когда специалисты уподобляются карточным шуллерам, что частое явление в теоретической физике и практической математике, юриспруденции . впрочем в кодинге тоже-дэвы языков очень политизированы, потому что никто из них не создал программы обучающей ими созданному языку. я их понимаю, хочется взять от жизни лучшее, а то что колючее и угловатое, несгибаемое ( в интеллектуальной сфере гнут чтобы потом сношать мозги, когда необходимо, я это знаю, потому что человечество практически в любой сфере применяет интеллект, думаю что кроме секса, в большем или меньшем объёме) и огромное пусть устанет или сгинет во времени, по другому подобное явление не объясняется никак, не стоит мне пытаться доказать обратное. вообще то жаль что я не знаю английского, потому что предпочитаю документацию, в детстве именно по ней делал програмки на ассемблере; общие понятия всё же были: что такое операторы цикла, перехода и пр, что именно они делают, ну и естественно схема процессора и его описание и распределение оперативки на машине, старенький комп был.

отредактировал(а) Hret: 2012-01-17 23:49 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5531   2012-01-17 23:48 GMT+3 часа(ов)      
> потому что лисп разрабатывался специально для АИ.

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

> функционал лиспа урезали каким нибудь образом в этих ветках?

С каким лиспом сравнивать? С тем который использовался для ИИ, или с более современными диалектами?

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

1) У вас что комплекс? Мне наплевать осилите вы или нет
2) В схеме есть понятие атома.

> если вы думали что я тролю, понятие телепатии

О какой телепатии идет речь? Я модератор и мне решать троллите вы или нет.

> потому что никто из них не создал программы обучающей ими созданному языку.

С чего вы взяли, что таких программ нет? В нете я встречал много различных программ самоучителей.

> вообще то жаль что я не знаю английского

Ну так учите.

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5532   2012-01-17 23:56 GMT+3 часа(ов)      
не совсем точно, поскольку язык имеет очень мощную рекурсию, вплоть до той, что запущенная программа может исправить, перекодить, саму себя. эта функция сомнений не оставляет . кроме того некоторые источники указывают на то, что именно для ИИ он был разработан. не буду спорить на этот предмет, это не столь важно. я много гуглил обучение современным языкам кодинга, увы, таких программ не встречал. кроме убожества теачпро, которое делает брак, мне попалось раз., более не юзал их продукты, но другие пытался найти.

отредактировал(а) Hret: 2012-01-18 00:33 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5533   2012-01-18 00:27 GMT+3 часа(ов)      
> не совсем точно

А вы типа профи?

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

Путаете лисп с ассемблером или фортом. Функцию (как и переменную) в лиспе только можно переопределить, все остальное к лиспу не относится.

> кроме того некоторые источники указывают на то, что именно для ИИ он был разработан

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

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5534   2012-01-18 00:30 GMT+3 часа(ов)      
Цитата
misha :
> не совсем точно

А вы типа профи?



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

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5535   2012-01-18 00:37 GMT+3 часа(ов)      
> а из моих вопросов вытекает такой вывод или вы всё ещё язвите, ущемлённое самолюбие?

А вы добавляйте "имхо" и никаких проблем не возникнет.

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

Да, но не так как вы себе это представляете.

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

"вытекает такой вывод или вы всё ещё язвите, ущемлённое самолюбие?"

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5536   2012-01-18 00:38 GMT+3 часа(ов)      
сказано что информация в программе, либо на лисп машине(не помню точно): данные, и код самой выполняемой программы хранятся в одном месте и не представляют для лисп машины никакой разницы, что позволяет программе, если в ней это предусмотренно, перекодить себя на ходу. вы почему то начинаете увиливать от этого и вспоминать другие языки, либо что-то ещё.

отредактировал(а) Hret: 2012-01-18 00:46 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5537   2012-01-18 00:47 GMT+3 часа(ов)      
> хранятся в одном месте и не представляют для лисп машины никакой разницы

Смелое заявление: "никакой разницы". Что под этим имелось в виду? Может уже пора обратиться к литературе?

> что позволяет программе, если в ней это предусмотренно, перекодить себя на ходу.

Перекодировать функцию или программу? Лисп позволяет в рантайме создавать новые функции и переопределять существующие.

> вы почему то начинаете увиливать от этого и вспоминать другие языки, либо что-то ещё.

Какие языки я вспомнил?

отредактировал(а) misha: 2012-01-18 01:02 GMT+3 часа(ов)

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5538   2012-01-18 00:52 GMT+3 часа(ов)      
а если мне не изменяет память, то это из книги, сказано, я написал в обобщении-передан смысл. там не написано о переопределении функций, там сказано что программа может изменять свой код (правда я понимаю что это возможно только на интерпритаторе, а не в откомпилированой программе, в откомпелированой программе этого не позволит ОС), так, как бы оперировала с обычными обрабатываемыми ею данными, она может менять всё, даже свой код, так, как это были бы простые данные. я отыщу этот текст, раз он вам так необходим, для подтверждения моих слов. сделать это?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5539   2012-01-18 01:01 GMT+3 часа(ов)      
> программа может изменять свой код, так, как бы оперировала с обычными обрабатываемыми ею данными, она может менять всё, даже свой код, так, как это были бы простые данные.

Функции являются объектами первого класса. О каком коде идет речь?

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5540   2012-01-18 01:03 GMT+3 часа(ов)      
Цитата
misha :
> программа может изменять свой код, так, как бы оперировала с обычными обрабатываемыми ею данными, она может менять всё, даже свой код, так, как это были бы простые данные.

Функции являются объектами первого класса.


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

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5541   2012-01-18 01:12 GMT+3 часа(ов)      
> перепрограммировать саму себя

То что они подразумевают я понимаю. Но я не знаю, что вы подразумеваете под "перепрограммировать"?

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5542   2012-01-18 01:27 GMT+3 часа(ов)      
вот: в лиспе формы представления программы и обрабатываемых ею данных одинаковы....Таким образом программы могут обрабатывать и преобразовывать другие программы и даже самих себя. что такое преобразование я прекрасно знаю- это замена объекта вторым, получаемым из первого, поэтому не нуждаюсь в растолковывании случая, с упоминанием терминов:"функций и их класса", потому как понятие преобразования вполне научное, как в физике , так и в математике, я прекрасно понимаю что объект можно преобразовать ещё и ещё, до такой степени, что он будет совсем другим, но не за одно действие, а целый ряд. а это я умею , я изобрел способ переключения передаточного числа без разъединения шестерен (пока скорости 3: действие, контрдействие, фиксация, нейтральная отсутствует, но в робототехнике она не нужна, если что её легко реализовать, поэтому она просто не в счёт):, и преобразования скорости вращения шесерен и других выходных элемнтов с коэффициентом сцепления равным 1, (тут всё точно)в диапозоне от нулевой до опр. кинематикой не занимался по формулам ( хотел закончиьт НПИ, но бросил после второй задачки по физике-она решается без высшей математики, вопреки правилам написания контрольных работ, точнее эта задача решается по другому, проще, без их теорий, обычной математикой и геометрией, а я не люблю когда кто-то пытается иметь мои мозги, с учёбой такой завяз, да и во времени я ограничен был, да и буду, дз , да и вообще всё,по предметам я получил только за месяц до сесси, а это мало времени), изобретение специфично, и рационально применимо только в робототехнике и автоматике, патент не выдали проклятые буквоеды из ФИПСа, желающие иметь всё ничего не делая, либо не иметь в своей стране изобретений или изобретателей, мне всё равно, для меня однотипно. позже сделаны озвучаные анимационные ролики, материал весь в инете, пусть и не отполированый. но суть не в этом. просто я знаю что такое преобразование, тут меня лечить не надо, и умею это делать, даже там, где большинство (ВСЕ) считают это не возможным.

отредактировал(а) Hret: 2012-01-18 02:17 GMT+3 часа(ов)

Kergan

Members


Статус

300 сообщений

Где: ---
Род занятий:
Возраст:

#5544   2012-01-18 06:19 GMT+3 часа(ов)      
2Hret
Нет, не может. Ваша книга врет.

Hret

Members


Статус

31 сообщений

Где: Russia
Род занятий:
Возраст:

#5545   2012-01-18 09:55 GMT+3 часа(ов)      
книга врать не может. я же сказал что прекрасно знаю что такое преобразование. просто кое кто не умеет пользоваться общей терминологией, или не хочет, чтобы состроить из себя сильно вумного, добиваясь авторитета. я понимаю что программа не станет совсем другой, пройдя ряд преобразований. то есть если преоброзованый блок выполнял какую-то функцию до преобразования, то он полагаю её и будет выполнять после, но в новом качаестве. а вот функция блоков в совокупности, может стать совсем другой, но чтобы преобразовать так, нужно проявиьт изобретательность, . у меня в видео там механизм, преобразуется скорость вращения. как она была скоростью, так и осталась, она не стала скоростью полёта или распада. но применив способ в другом изобретении, я получаю переключение без разъединения шестерен. то же самое я буду делать с программами. я же говорил что у меня их много будут работать как одна. книга врать не может. я понимаю что там пишут. тем более тут хвалили эту книгу-книга финских специалистов. и не надо думать что я дурачок. вот тут есть видео по моему изобретению www.invention-gearvariator.ru, что бы вы знали что термин преобразования общий, и как их можно делать, а как нет.

Kergan

Members


Статус

300 сообщений

Где: ---
Род занятий:
Возраст:

#5547   2012-01-18 15:43 GMT+3 часа(ов)      
Еще раз, для особо одаренных. Если где-то сказано, что программа на лиспе может преобразовывать сама себя в понимаемом тобой смысле - это ложь. Не может. То есть _вообще_ не может. Можно только переопределить значение того или иного символа, но это не имеет ничего общего с изменением программного кода. Вообще, если ты используешь компилируемую реализацию, то такого понятия как "программный код" после запуска программы вообще не существует. И преобразовывать, соответственно, нечего.

Kergan

Members


Статус

300 сообщений

Где: ---
Род занятий:
Возраст:

#5548   2012-01-18 15:45 GMT+3 часа(ов)      
> книга врать не может

Но в данном случае она, очевидно, врет, ведь там написано нечто противоречащее фактам.

> тем более тут хвалили эту книгу-книга финских специалистов.

Что за специалисты, что за книга и в каком именно месте это написано?

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#5549   2012-01-18 18:17 GMT+3 часа(ов)      
Не охота читать все посты. Но хочется сказать - странный какой-то шум подняли. Да, действительно - это одна из фишек Лиспа - функция может переопределить саму себя/программа преобразовать саму себя. Собственно и что? Переопределяйте на здоровье, главное чтобы профит был, а не просто введение лишних сложностей/сущностей.
Эта тема закрыта, публикация новых сообщений недоступна.


Онлайн :

0 пользователь(ей), 37 гость(ей) :