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

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

misha

Moderators


Статус

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

#2704   2010-08-09 19:09 GMT+3 часа(ов)      
Можете опубликовать. Только одна просьба: предоставьте мне статью на рецензирование.

utkin

Members


Статус

21 сообщений

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

#2709   2010-08-10 11:01 GMT+3 часа(ов)      
Обязательно. Еще вопрос, как это проверить? То есть как мне запустить выполнение на моем компе? Просто мне нужно посмотреть как это выглядит, сделать скриншоты и т.д.

отредактировал(а) utkin: 2010-08-10 11:13 GMT+3 часа(ов)

misha

Moderators


Статус

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

#2711   2010-08-10 17:08 GMT+3 часа(ов)      
1) Установите MySQL. Запустите(если он остановлен) MySQL-сервер. Создайте базу данных для гостевой книги.
2) Удалите у исходника лишнее расширение(.scm), измените пользовательские настройки гостевой, и затем скопируйте исходник в папку htdocs plt-web-server'а. Запустите plt-web-server. Вообще-то сервер необходимо настроить, а также установить режимы доступа к файлам и каталогам сервера, но для первого запуска и так сойдет.

Посмотреть на гостевую можно перейдя по ссылке http://localhost/guestbook.rkt

отредактировал(а) misha: 2010-08-15 01:46 GMT+3 часа(ов)

vkhomyakov

Members


Статус

6 сообщений

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

#4187   2011-04-14 11:11 GMT+3 часа(ов)      
to misha
Racket - интересный проект!

Даже взять то, что устанавливаешь DrRacket запускаешь его,
пишешь программы и компилируешь, без танцев с бубном.
Мне показалось, что Racket и прост и сложен одновременно.
Чем больше в него погружаюсь, тем больше нравится.

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

Такие вот мысли.

misha

Moderators


Статус

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

#4191   2011-04-15 01:18 GMT+3 часа(ов)      
> Даже взять то, что устанавливаешь DrRacket запускаешь его,
пишешь программы и компилируешь, без танцев с бубном.

К сожалению, в DrRacket отсутствует менеджер проектов, поэтому приходится писать специальные скрипты для сборки сложного проекта. Но это несложно, ведь Рэкет поставляется с довольно юзабельными библиотеками, в которых реализовано все необходимое для написания собственного компилятора.

> Мне показалось, что Racket и прост и сложен одновременно.
Racket, как язык программирования, довольно сложен, отчасти из-за того, что осилить почти 900 страниц "Reference: Racket" довольно тяжело. Да к тому же еще, там хорошо описаны только примитивы, а все финты остались за кадром. Но ведь не забывайте, "Reference: Racket" всего лишь вершина айсберга помимо него есть еще куча библиотек, которые необходимо изучить дабы не клепать велосипеды

> Странно, что пока не встречались прикладные программы,
написанные на нем. Мне, по крайней мере. Может ссылку дадите.

Я этот вопрос не изучал. Racket появился относительно недавно(ему скоро исполнится годик), поэтому если они и есть, то необходимо искать MzScheme. Хотя с другой стороны, интерпретаторов, трансляторов, препроцессоров и т.д. написано предостаточно. Ведь для этого и разрабатывался Лисп

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

misha

Moderators


Статус

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

#4192   2011-04-16 14:49 GMT+3 часа(ов)      
Я рекомендую попробовать связку emacs + geiser. Правда компилировать Вам придется в REPL.

misha

Moderators


Статус

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

#4193   2011-04-16 23:45 GMT+3 часа(ов)      
Скриптовый движок у игры Uncharted 2: Among Thieves реализован на Racket(точнее на устаревшем MzScheme).

vkhomyakov

Members


Статус

6 сообщений

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

#4197   2011-04-18 12:19 GMT+3 часа(ов)      
Цитата
misha :
Я рекомендую попробовать связку emacs + geiser.



Судя по описаниям - хороший инструмент, только не заработал с первого раза.
Не видит экзешника Racket.exe для REPL.
Подскажите, как к нему путь в Emacs прописать?

misha

Moderators


Статус

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

#4198   2011-04-18 17:17 GMT+3 часа(ов)      
> Не видит экзешника Racket.exe для REPL.
Подскажите, как к нему путь в Emacs прописать?

Я знаю два способа:
1) Меню Geiser -> Customize -> Racket.
Прописываете полные пути к исполняемым файлам в Unix-стиле(см. пункт 2). Обязательно сохраняетесь!
2) Добавляете в файл .emacs, после строки загрузки Geiser, следующие строки
(custom-set-variables
'(geiser-racket-binary "C:/Program Files/Racket/Racket.exe")
'(geiser-racket-gracket-binary
"C:/Program Files/Racket/GRacket-text.exe"))
Ваши пути могут отличаться.

Если у Вас XP или более ранняя версия, то Вам придется также исправить функцию enter! в модуле "путь до geiser"/scheme/racket/geiser/user.rkt, либо не использовать локализованных имен.
(define (enter! mod stx)
(cond [(not mod)
(current-namespace top-namespace)
(last-entered "")]
[(symbol? mod) (do-enter mod (symbol->string mod))]
[(and (list? mod)
(= 2 (length mod))
(eq? 'file (car mod))
(path-string? (cadr mod))) (do-enter mod (cadr mod))]
[(path-string? mod) (do-enter `(file ,mod) mod)]
[(and (vector? mod)
(= (vector-length mod) 4)
(path-string? (vector-ref mod 0)))
(do-enter `(file ,(vector-ref mod 0)) (vector-ref mod 0))]
[else (raise-syntax-error
#f
"not a valid module path, and not #f"
stx
mod)]))

отредактировал(а) misha: 2011-04-18 17:34 GMT+3 часа(ов)

vkhomyakov

Members


Статус

6 сообщений

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

#4202   2011-04-19 17:29 GMT+3 часа(ов)      
Спасибо! Сделал. Работает.
Как раз у меня XP.
Только, программа пока маленькая, мне удобнее в DrRacket -
до ограничений пока не дошел.
Когда почувствую, что DrRacket уже не тянет -
буду разбираться с emacs + geiser.

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4286   2011-05-16 10:43 GMT+3 часа(ов)      
Цитата
misha :
Многие считают Схему простым маленьким ЯП, на изучение которого обычно тратится не более месяца. Но когда дело доходит до создания прикладных программ, приходится снова учится. Ранее основной реализацией Схемы для создания пользовательских приложений был фреймворк plt. Задачи которые ставили перед собой разработчики plt были довольно скромные, а именно: создать удобный фреймворк для программирования на Схеме. И они с этим справились.
Racket является продуктом дальнейшего развития plt. Он ориентирован прежде всего на создание современных приложений, и является лучшей альтернативой питону и руби.



Здравствуйте! Своё знакомство со Scheme начинал именно с PLT-Scheme. Но потом забросил, перейдя на Common Lisp (Clozure CL под Win и SBCL под Linux). Недавно, благодаря как раз этой теме, решил снова посмотреть на Scheme, и тем более на Racket. Если честно, посмотрел и ужаснулся (без наезда)! Показались ужасными макросы, не понравилось отсутствие параметров &rest, &key и &optional в функциях, а также, отсутствие поддержки параметрических списков вида '(:a 1 :b 2 :c 3). Но, недавно я обнаружил всё это богатство в Gambit-C, включая даже макросы в стиле CL. Так вот, хочется спросить, как с этим всем обстоят дела в Racket'е? Может быть я плохо смотрел? Хотя, макросы в стиле CL мне уже не нужны. Разобрался с R5RS-макросами и мне они показались гораздо удобнее. Другое дело, что запись их несколько длиннее, чем в CL.

Ещё, в Racket'е не нравится 3 момента:
1) Очень долго собирается из исходников.
2) Любит подтормаживать и кушать память, подобно Java.
3) Нужно тащить за собой весь дистрибутив, который немало весит (в отличии от Gambit, Chicken и Bigloo).

В принципе, на современных машинах с этим всем можно ужиться, но на старых это конечно не радует (особенно задумчивость).

И ещё, вопрос к людям, знающим CLOS: Есть ли в ОО-механизме Racket'а поддержка generic functions? Знаю, что есть swindle, про который говорят, что это аналог CLOS, но документации по нему, можно сказать, ноль.

Всё поглядываю в сторону этого языка, но постоянно гложет мысль, а нужен ли он мне? Может быть и вправду, хватит Gambit'а?

misha

Moderators


Статус

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

#4287   2011-05-16 14:37 GMT+3 часа(ов)      
Цитата
rv82 :
Если честно, посмотрел и ужаснулся (без наезда)! Показались ужасными макросы, не понравилось отсутствие параметров &rest, &key и &optional в функциях, а также, отсутствие поддержки параметрических списков вида '(:a 1 :b 2 :c 3).

Изучение макросистемы Рэкета нужно начинать с синтаксического объекта, без умения с ним работать изучение дальнейшего материала подобно прохождению болота вслепую. А вообще, макросы у Рэкета довольно гибкие и юзабельные: можно использовать шаблоны, сопоставление с образцом, либо парсить их как в классическом Лиспе(я это уже не раз доказывал!).
От использования ключевых слов #:key, #:optional, #:rest, #:other-keys, #:forbid-other-keys и др. отказались немного усложнив синтаксис определения параметров функции, но при необходимости ими всегда можно воспользоваться. Новый синтаксис определения параметров функции позволяет(почти всегда) избежать их использования.
Не "параметрический список", а "список, содержащий ключевые слова".
> (keyword? '#:v)
#t
> (keyword? (car '(#:a 1)))
#t
> (symbol? (car '(#:a 1)))
#f
Цитата
rv82 :
Хотя, макросы в стиле CL мне уже не нужны. Разобрался с R5RS-макросами и мне они показались гораздо удобнее. Другое дело, что запись их несколько длиннее, чем в CL.

Хочу предупредить сразу, модуль - это "лямбда", а не пакет или юнит. Поэтому аналогии с CL здесь неуместны. Конечно, Вы всегда можете работать с AST через синтаксический объект, поэтому нет необходимости в использовании дополнительных "вещей"(defmacro, define-macros и т.п.).
Цитата
rv82 :
Ещё, в Racket'е не нравится 3 момента:
1) Очень долго собирается из исходников.
2) Любит подтормаживать и кушать память, подобно Java.
3) Нужно тащить за собой весь дистрибутив, который немало весит (в отличии от Gambit, Chicken и Bigloo).

В принципе, на современных машинах с этим всем можно ужиться, но на старых это конечно не радует (особенно задумчивость).

1) Вы количество библиотек видели? А теперь представьте, что необходимо для каждого из модулей создать fasl.
2) Не используйте DrRacket(да и под линуксом его постоянно глючит), т.к. он использует "графическую трассировку", которая ужасно сильно жрет системные ресурсы. Выходом является использование emacs + geiser. А также не забывайте создавать fasl'ы для уже отлаженных модулей(для этого используется функция managed-compile-zo).
3) Это не обязательно Существует более пяти способов этого избежать.

misha

Moderators


Статус

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

#4289   2011-05-16 15:03 GMT+3 часа(ов)      
Цитата
rv82 :
И ещё, вопрос к людям, знающим CLOS: Есть ли в ОО-механизме Racket'а поддержка generic functions? Знаю, что есть swindle, про который говорят, что это аналог CLOS, но документации по нему, можно сказать, ноль.


ООП для Рэкета ещё довольно сырое, о чем свидетельствует довольно скудная документация по этой теме. generic "механизмы" для методов присутствуют, но о какой либо значимой аналогии с CLOS говорить пока рано, все ещё может поменяться. Да и нет никакой необходимости в совместимости с CLOS. Предупрежу заранее, класс и его объект нужно рассматривать как "лямбды специального вида", тогда многие вещи становятся понятными.
Цитата
rv82 :
Всё поглядываю в сторону этого языка, но постоянно гложет мысль, а нужен ли он мне? Может быть и вправду, хватит Gambit'а?


Рэкет(как и CL) ориентирован на создание больших проектов, а для хелловордов или написания маленьких плагинов достаточно и Gambit'а.

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4295   2011-05-16 17:57 GMT+3 часа(ов)      
Бегло ознакомился с библиотекой Ракетки. Действительно круто в сравнении с gambit/chicken/bigloo. Хотя, есть непонятные моменты с модульной системой, но об этом позже. Misha, хотелось бы узнать Ваше личное мнение на предмет места Ракетки среди прочих языков программирования. На Ваш взгляд, он ближе к скриптовым, или языкам типа Java/.Net?

misha

Moderators


Статус

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

#4297   2011-05-16 20:30 GMT+3 часа(ов)      
> Хотя, есть непонятные моменты с модульной системой, но об этом позже.
Лучше не используйте аналогий, между Racket и CL мало общего. Модуль - это не пакет, у него своя специфика. Модули необходимы для применения объектного подхода (не путать с ООП).

> На Ваш взгляд, он ближе к скриптовым, или языкам типа Java/.Net?

Все зависит от того, как Вы его настроите. Рэкетом называется ведь не только язык программирования, а также еще и виртуальная машина.

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4298   2011-05-16 22:54 GMT+3 часа(ов)      
> Лучше не используйте аналогий, между Racket и CL мало общего. Модуль - это не пакет, у него своя специфика. Модули необходимы для применения объектного подхода (не путать с ООП).
Как раз с CL я и не сравниваю. Мне ближе модули в том виде, в каком они присутствуют в Паскаль-подобных языках (ну или в Питоне). В общем, меня модули интересуют только как пространства имён. Но, пока я с ними не разобрался, ничего спрашивать и, тем более, заявлять не буду. Когда точно появятся вопросы, то спрошу. Сейчас единственное, что бросилось в глаза, так это наличие двух типов модулей: собственно модули и юниты (units). Если я правильно понял, на модулях построена вся библиотека Racket'а. А юниты - это нечто аналогичное структурам (модулям) в Standard ML. В свободное время буду копаться и разбираться со всем этим богатством.

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4305   2011-05-17 11:23 GMT+3 часа(ов)      
Всё, вопрос оформился. Есть ли в Racket переменная, подобная load-path в Emacs, которая бы указывала на каталог с коллекциями модулей? Мне это надо для того, чтобы указать, что коллекция модулей находится в текущем каталоге с программой. А всё это мне нужно затем, чтобы загружать модули, не указывая конкретного имени файла (т.е., не (require "funcs.rkt"), а (require my/funcs)), чтобы интерпретатор, при наличии откомпилированных файлов, выбирал именно их.
Почему-то мне думается, что такая возможность точно есть. Но, я не нашёл ничего в документации. Может быть, как всегда, от нехватки времени плохо искал?

misha

Moderators


Статус

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

#4308   2011-05-17 15:22 GMT+3 часа(ов)      
> Есть ли в Racket переменная, подобная load-path в Emacs, которая бы указывала на каталог с коллекциями модулей?
См. описание параметра current-library-collection-paths.

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

> А всё это мне нужно затем, чтобы загружать модули, не указывая конкретного имени файла (т.е., не (require "funcs.rkt"), а (require my/funcs)), чтобы интерпретатор, при наличии откомпилированных файлов, выбирал именно их.
Откомпилированные файлы загружаются по умолчанию, при этом проверяются штамп времени, хеш-сумма и др. параметры исходника на наличие изменений. И если несоответствия обнаружены, то выдается сообщение об ошибке.

> Может быть, как всегда, от нехватки времени плохо искал?
Однозначно

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4322   2011-05-18 14:42 GMT+3 часа(ов)      
misha
> А всё это мне нужно затем, чтобы загружать модули, не указывая конкретного имени файла (т.е., не (require "funcs.rkt"), а (require my/funcs)), чтобы интерпретатор, при наличии откомпилированных файлов, выбирал именно их.
Откомпилированные файлы загружаются по умолчанию, при этом проверяются штамп времени, хеш-сумма и др. параметры исходника на наличие изменений. И если несоответствия обнаружены, то выдается сообщение об ошибке.

Спасибо за консультацию. Теперь тёмных пятен не осталось. К тому же, сегодня попробовал написать модуль на Си с использованием C API. Оказалось очень легко (очень похоже на C API в Tcl). Как будет время, напишу статейку в своём блоге о создании расширений для Racket.

PS. До этого, всегда и везде, где только можно, использовал Tcl (а где нельзя, писал к нему расширения на Си). Также, хотел изучить Python и Ruby, но так и не смог себя переломить. Есть что-то отталкивающее в этих языках. Теперь же, плюс к Tcl, планирую так же широко использовать и Racket.

misha

Moderators


Статус

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

#4331   2011-05-19 23:22 GMT+3 часа(ов)      
> К тому же, сегодня попробовал написать модуль на Си с использованием C API.
Кстати, под виндой придется немного Рэкетовскую либу править.

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#4401   2011-05-29 20:38 GMT+3 часа(ов)      
Написал статью. Но есть проблема: сделал в Emacs'е html из всех исходников, а blogger не хочет брать этот html. Как будет время, сделаю сайт на narod.ru и выложу статью на него.

> Кстати, под виндой придется немного Рэкетовскую либу править.
Да, столкнулся с этим. Единственное, что утешает, что лично я в Windows не сижу. Кстати, когда-то давно, ещё на PLT Scheme, у меня получалось загружать dll в Windows с помощью FFI.

misha

Moderators


Статус

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

#4436   2011-06-06 02:04 GMT+3 часа(ов)      
> Да, столкнулся с этим. Единственное, что утешает, что лично я в Windows не сижу.
За всем не уследишь) Некоторые библиотеки просто не успевают править, но в этом отчасти и наша вина. Баг репорты необходимо почаще писать.

kitoran

Members


Статус

5 сообщений

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

#6314   2012-07-20 15:16 GMT+3 часа(ов)      
Я начал читать сикп, там написано, что есть слово nil, которое обозначает нулевой список, но предлагается вместо него использовать '(). В рэкете это слово совсем не используется, или пишется по-другому? Используется #lang scheme , рэкет говорит - не знаю слова nil.

И ещё вопрос - про рэкет на русском ничего нет, ни книжек, ни документации, ни руководства, правильно?
(Извиняюсь, если вопрос не в тот топик, я не нашёл темы, где можно было бы задавать мелкие глупые вопросы)

отредактировал(а) kitoran: 2012-07-20 16:31 GMT+3 часа(ов)

misha

Moderators


Статус

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

#6329   2012-07-21 20:05 GMT+3 часа(ов)      
Цитата
Я начал читать сикп, там написано, что есть слово nil, которое обозначает нулевой список, но предлагается вместо него использовать '().
(define nil '())

Цитата
И ещё вопрос - про рэкет на русском ничего нет, ни книжек, ни документации, ни руководства, правильно?
Учите английский

stolzen

Members


Статус

16 сообщений
http://0agr.ru
Где: Poland Krakow
Род занятий: Программирую я
Возраст: 27

#6333   2012-07-21 23:35 GMT+3 часа(ов)      
Racket знает null, то же самое, что nil. Ну и да, (define nil '()) вам в помощь

kitoran

Members


Статус

5 сообщений

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

#6451   2012-08-10 22:13 GMT+3 часа(ов)      
Скопировал код из гайда, отсюда: http://docs.racket-lang.org/guide/define-struct.html

вот этот:
 
(struct lead (width height)
#:methods
gen:equal+hash
[(define (equal-proc a b equal?-recur)
; compare a and b
(and (equal?-recur (lead-width a) (lead-width b))
(equal?-recur (lead-height a) (lead-height b))))
(define (hash-proc a hash-recur)
; compute primary hash code of a
(+ (hash-recur (lead-width a))
(* 3 (hash-recur (lead-height a)))))
(define (hash2-proc a hash2-recur)
; compute secondary hash code of a
(+ (hash2-recur (lead-width a))
(hash2-recur (lead-height a))))])
 


DrRacket говорит:
struct: unrecognized struct-specification keyword in: #:methods

Ключевое слово #:transparent он отлично признаёт, почему он не признаёт #:methods?
Используется #lang racket

misha

Moderators


Статус

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

#6453   2012-08-10 22:27 GMT+3 часа(ов)      
Цитата
struct: unrecognized struct-specification keyword in: #:methods
Эта фича появилась с новой версией.

kitoran

Members


Статус

5 сообщений

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

#6486   2012-08-27 20:56 GMT+3 часа(ов)      
Чем отличаются в использовании классы и структуры? Зачем структурам методы?

Можно ли обновить рэкет до текущей версии одной кнопочкой, или только удалять-переустанавливать?

А ещё как вы считаете, правду пишут, что scheme - более чистый и функиональный диалект, чем cl?

kitoran

Members


Статус

5 сообщений

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

#6487   2012-08-29 20:10 GMT+3 часа(ов)      
А ещё: Чем отличаются в использовании пакеты и модули?

misha

Moderators


Статус

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

#6617   2012-09-25 15:50 GMT+3 часа(ов)      
Цитата
Чем отличаются в использовании классы и структуры? Зачем структурам методы?
Вам стоит ознакомиться с основами ООП.
Цитата
Можно ли обновить рэкет до текущей версии одной кнопочкой, или только удалять-переустанавливать?
Пока только переустанавливать.
Цитата
А ещё как вы считаете, правду пишут, что scheme - более чистый и функиональный диалект, чем cl?
Да, я тоже так считаю


Онлайн :

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




Реклама на сайте: