Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 190 | 7 | 89
Назад Вниз Каталог Обновить

Лиспотред №9 Аноним 09/06/17 Птн 01:31:25  1003393  
cloje-icon.png (59Кб, 639x639)
Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

Основные диалекты
Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и, в некоторых реализациях (sbcl, например), частичный их вывод.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
+ свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (LLVM; ориентирован на интероп с C++), ABCL (байт-код JVM), gcl, cmucl
+ коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl (для программирования под ведро и ios)
Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Наиболее практичными реализациями являются GNU Guile ( https://www.gnu.org/software/guile/ ) и Chicken Scheme ( http://call-cc.org/ ).
Racket - Развитие PLT Scheme. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket, Scheme стандартов r5rs и r6rs).
Clojure - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.
Hy - Lisp-синтаксис для Python с анафорическими макросами ( http://hylang.org/ )
Emacs Lisp - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.
Lisp Flavored Erlang (LFE) - Реализация Lisp поверх виртуальной машины Erlang (BEAM) в итоге мы имеем всё лучшее из обоих миров: привычный синтаксис s-выражений, макросы, функциональщина, иммутабельность, многопоточность из коробки + набор либ для построения отказоустойчивых распределённых приложений OTP. http://lfe.io/
Tcl - скриптовый язык с немного наркоманскимстранным синтаксисом. Из коробки множество батареек на любой случай жизни, среди которых неповторимый Tk. Язык очень удобен для написания скриптиков, особенно когда к ним требуется приделать графический интерфейс.
Rebol
PicoLisp - Наркоманская хуита
newLISP - Скриптовый лисп с компактным и быстрым интерпретатором и батарейками на любой случай жизни. В первую очередь предназначен для скриптоты, которую обычно пишут на perl, python, tcl, sh: обработка текстов, работа с сетью, базами данных, взаимодействие с ОС, построение графиков и т.п.
Список возможностей: http://www.newlisp.org/index.cgi?Features
Отличия от других диалектов: http://www.newlisp.org/index.cgi?page=Differences_to_Other_LISPs

Как изучить?

Emacs Lisp
+ An Introduction to Programming in Emacs Lisp https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html — скучный туториал, предполагающий что читатель вообще не умеет программировать
+ Emacs Lisp Reference Manual https://www.gnu.org/software/emacs/manual/html_node/elisp/index.html

Common Lisp
+ Practical Common Lisp http://www.gigamonkeys.com/book/ или русский перевод — http://lisper.ru/pcl/
+ On Lisp http://www.paulgraham.com/onlisp.html
+ Land of Lisp
+ Common Lisp HyperSpec http://www.lispworks.com/documentation/HyperSpec/Front/ — стандарт языка
+ Art of Metaobject Protocol — подробное описание MOP и CLOS
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/lisp
Алсо, годная статья про проектирование eDSL'ей на CL http://swizard.info/articles/solitaire/article.html

Scheme
+ The Little Schemer (https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992), The Seasoned Schemer (https://www.amazon.com/Seasoned-Schemer-MIT-Press/dp/026256100X), The Reasoned Schemer (https://www.amazon.com/Reasoned-Schemer-MIT-Press/dp/0262562146), Death of a Schemer (https://www.amazon.com/Death-Schemer-Frank-May-Chronicles/dp/1610273060)
+ SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет)
+ http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/scheme

Racket
+ The Realm of Racket
+ How to Design Programs http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html
+ https://docs.racket-lang.org/

Clojure
+ Programming Clojure, 2nd edition (для новичков)
+ Clojure for brave and true http://www.braveclojure.com/foreword/ — В отличие от предыдущего сухого изложения, более приятный для восприятия материал, да и бесплатный, если читать онлайн.
+ The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП)
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/clojure

Tcl/Tk
+ Официальный учебник http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
+ Документация по tcl http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm и tk http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm
+ Статьи про Tcl и Tk на wikibooks с примерчиками https://en.wikibooks.org/wiki/Category:Tcl_Programming
+ TkDocs с примерами на tcl, perl, ruby http://www.tkdocs.com/tutorial/index.html

Среды разработки
Одно из основных преимуществ лиспа в сравнении с языками с циклом разработки "написал → перекомпилировал → запустил в отладчике" - поддержка интерактивно-итеративного метода разработки. Но без инструментария, обеспечивающего полноценное взаимодействие с реплом, оно сводится на нет. Поэтому писать без использования нормальной среды - значит упустить важную особенность языка.

!!Чтобы не ебаться с емаксом, лучше можно взять уже преднастроенный spacemacs ( https://github.com/syl20bnr/spacemacs ).

Common Lisp
+ Portacle ( https://shinmera.github.io/portacle/ )
+ Emacs + SLIME - самый лучший вариант.
+ vim + SLIMV
+ LispWorks
+ AllegroCL IDE упаси боже
+ Eclipse + cusp
+ <Что-нибудь для сублайма/атома уже запилили, наверное?>

Scheme/Racket
+ Emacs + Geiser (поддерживает GNU Guile и Chicken Scheme)
+ DrRacket

Clojure
+ Emacs + CIDER
+ LightTable
+ Vim-fireplace
+ Cursive Clojure (IntelliJ plugin)
+ Counterclockwise (Eclipse plugin)

Tcl
+ Emacs + tcl-mode (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно)


Библиотеки
Common Lisp
+ Quicklisp ( https://www.quicklisp.org/beta/ ) - CPAN из мира CL
+ Quickdocs ( http://quickdocs.org/ ) - документация по всем пакетам из quicklisp
+ Проекты, заслуживающие внимания ( https://github.com/CodyReichert/awesome-cl )
+ Cliki ( http://cliki.net/ )
+ Обзор экосистемы общелиспа на швабре ( http://habrahabr.ru/post/265589/ )

Scheme
+ Racket: http://pkgs.racket-lang.org/ и http://planet.racket-lang.org/
+ Chicken: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
+ http://snow.iro.umontreal.ca/?tab=Packages
+ http://www.schemespheres.org/spheres


Предыдущие треды: http://arhivach.org/?tags=3055,113
Шапка: https://titanpad.com/x87hR0KJ2w
Аноним 09/06/17 Птн 01:48:35  1003397
>Cloje - a clone of Clojure built atop Scheme/Lisp.
https://gitlab.com/cloje/cloje
Аноним 09/06/17 Птн 15:01:52  1003559
https://practicalli.github.io/spacemacs/
здарова чувачки
Аноним 24/06/17 Суб 01:12:43  1010719
Скажите мне, что не так с лиспом?
Вроде такой крутой язык, а неумеет нормально с IO работать. Пара каких-то дерьмолиб и все.
Где его вообще можно применять то?
Аноним 24/06/17 Суб 01:19:10  1010722
>>1010719
В задачах искусственного интеллекта, конечно же.
Аноним 24/06/17 Суб 03:20:34  1010738
>>1010719
у кложи все ок с io
Аноним 24/06/17 Суб 04:35:23  1010746
>>1010738
>у кложи все ок с io
java/net
Насколько я понимаю.

>>1010722
>В задачах искусственного интеллекта, конечно же.
Сложно себе представить такие задачи без интенсивного IO и параллелизма.
Аноним 24/06/17 Суб 12:07:12  1010822
>>1010719
В функциональным языках вообще всё плохо с IO.
Аноним 24/06/17 Суб 12:32:36  1010831
А как мне быть если нужно хранить состояние? Вот я должен проводить итерацию пока не будет достигнут какой-то критерий. А критерий может быть мутабельным, ну например на протяжении скольких-то шагов приращение результат было меньше заданной точности. Тупо создавать новое состояние и кидать его как доп параметр в рекурсии?
Аноним 24/06/17 Суб 16:45:00  1011009
>>1010831
>А как мне быть если нужно хранить состояние? Вот я должен проводить итерацию пока не будет достигнут какой-то критерий. А критерий может быть мутабельным, ну например на протяжении скольких-то шагов приращение результат было меньше заданной точности. Тупо создавать новое состояние и кидать его как доп параметр в рекурсии?
Ты наркоман совсем?
Если нужно хранить состояние - храни состояние.
Лисп тебе этого не запрещает.
Аноним 24/06/17 Суб 17:08:55  1011027
>>1010831
Да. Вообще говоря любой цикл можно реализовать через (хвостовую) рекурсию.
Аноним 24/06/17 Суб 18:28:19  1011075
>>1010822
хуево все с IO только у хаскеля из-за фанатичной чистоты. Какие проблемы у кложи или у эрланга?
Аноним 24/06/17 Суб 18:56:06  1011096
>>1011009
>запрещает
Ну он очень толсто намекает.
Аноним 24/06/17 Суб 20:06:31  1011151
>>1010722
Для таких задач есть пролог тащемта
Аноним 24/06/17 Суб 22:42:35  1011276
>>1011096
>Ну он очень толсто намекает.
И не намекает даже.
Аноним 25/06/17 Вск 11:21:33  1011381
Почему лисп не конкурентно способный по отношению к другим языкам? Почему он непрактичен? Даже в MIT нет Lisp.
Аноним 25/06/17 Вск 12:32:37  1011403
>>1011381
>не конкурентно способный
откуда инфа? Лиспы это много языков и на лиспах написано достаточно продуктов.
Аноним 25/06/17 Вск 12:58:38  1011410
f.jpg (86Кб, 946x598)
https://www.tiobe.com/tiobe-index/
Аноним 25/06/17 Вск 13:44:56  1011428
Аноны, какой Лисп пригоден для веба? Рассматриваю Racket и Clojure. В Racket нравится почти все, правда пока не догнал как на нем писать для веба. В Clojure не нравится JVM и запутанный веб-стек.
Аноним 25/06/17 Вск 13:55:01  1011431
>>1011428
я не юзал ракет, поэтому не могу за него советовать, я по кложе. Стек простейший, ring и compojure это все что тебе надо для того чтобы делать вебприложения. Осваиваются за пару дней. Удачи
Аноним 25/06/17 Вск 13:59:43  1011434
>>1011431
Спасибки. Мне вот почему то стек не показался простым, ну да ладно, буду бить дальше. А как насчет ClojureScript, по идее на нем можно писать под Ноду, или нет?
Аноним 25/06/17 Вск 14:51:57  1011453
>>1011434
>Ноду
Конечно можно, и к реакут ее тоже можно прикрутить.
Аноним 25/06/17 Вск 15:38:56  1011465
>>1011453
>Конечно можно, и к реакут ее тоже можно прикрутить.
Лучше сразу к PHP
Аноним 25/06/17 Вск 17:02:02  1011515
>>1011453
Спасибо.

>>1011465
К чему такой выпад? Писать на Javascript нет никакого желания, а раз уж ClojureScript компилится в Javascript, то почему бы не использовать его и на Ноде.
Аноним 25/06/17 Вск 17:03:05  1011517
>>1011465
пацан ты походу ваще не вывозишь. Пыха это для рендеринга хтмля сервером. Мы про кложескрипт говорим, который на js хостицца. Реакт хороший фреймворк который дает няшные абстракции. Почти все библиотеки для работы над интерфейсами в кложескрипте являются сорт оф врапперами над компонентной системой реакта и это хорошо, потомушта реакт няшненький и декларативный, состояние от поведение отделяет.
Учись и просвящайся
Аноним 25/06/17 Вск 17:14:33  1011525
Читаю СИКП и столкнулся с такой фигней, например выражение и книги

(define (abs x)
(if (< x 0)
(- x)
x))

не будет работать правильно, потому что интерпретатор воспринимает минус из (- x) как функцию, и поэтому не возвращает отрицательный x.

То есть если вызвать функцию с положительным числом, то все будет нормально, (abs 5) вернет 5.

Если вызвать с отрицательным, (abs -5) то функция вернет положительное число 5, так как интерпретировала (- x) как функцию - и положительный x.

Если убрать скобки, будет ошибка синтаксиса. Не знаю как быть. Вроде должен быть оператор, который говорит что форма не содержит функций, чтобы (- x) возвращал отрицательный x. Не знаю как загуглить это, помогите плиз. Пишу на Racket.
Аноним 25/06/17 Вск 17:20:06  1011534
>>1011525
определи функцию которая отнимает число от нуля и используй ее тут вместо минуса
Аноним 25/06/17 Вск 17:22:36  1011536
>>1011534
ну или просто (- 0 x) :)
Аноним 25/06/17 Вск 17:36:47  1011545
>>1011534
>>1011536

Оригинальное решение, спасибо.

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

Непонятно как могли такое написать в СИКПе, код ведь не рабочий.
Аноним 25/06/17 Вск 18:34:35  1011586
>>1011536
Парадокс, но как ты написал не работает, нужно наоборот, (- x 0). Это только в ифах так. Чет даже не смешно, что не так с ракетой.
Аноним 25/06/17 Вск 18:59:18  1011592
Нашел обновленную, исправленную версию СИКП, и там тоже самое, везде пишут (- x), как так, это же не работает.

(define (abs x) (cond ((> x 0) x) ((= x 0) 0) ((< x 0) (- x))))

(define (abs x) (cond ((< x 0) (- x)) (else x)))

(define (abs x) (if (< x 0) (- x) x))

Ну почему такая херня, они что не проверяют код.
Аноним 25/06/17 Вск 19:11:02  1011594
>>1011592
Возьми MIT Scheme и проверь
Аноним 25/06/17 Вск 19:22:04  1011600
>>1011594
Что за MIT Scheme? Проверял в Racket. Да и что проверять, и так ясно что первый минус интерпретируется как функция.

Нашел в одном месте указание на такое поведение, но там вместо ссылки на объяснение, 2 левые ссылки.

For example, here's how one could create an absolute value procedure using lambda and if.

> (define abs-of-steele
(lambda (x) (if (>= x 0) x (- x))))
> (abs-of-steele -1)
1
> (abs-of-steele 1)
1

To understand why this is a horrible pun, click here and here.

Взято отсюда http://cs.gettysburg.edu/~tneller/cs341/scheme-intro/
Аноним 25/06/17 Вск 19:36:42  1011612
>>1011600

примеры кода в сикп даны на языке Scheme. Это тоже такой лисп, там работает унарный минус

MIT/GNU Scheme running under OS X

1 ]=> (- 1)

;Value: -1
Аноним 25/06/17 Вск 19:41:34  1011616
>>1011612
Ну и что? Racket это бывший Scheme. Фактически это один и тот же язык. Проблема же не в языке, а в том, что кто-то неправильно дает примеры, если даже в СИКПе ошибка.
Аноним 25/06/17 Вск 19:56:43  1011621
>>1011616
Как мы видим, не один и тот же
Аноним 25/06/17 Вск 20:04:05  1011623
>>1011621
Попробуй такую функцию:

(define (abs x) (if (< x 0) (- x) x))

При вызове на отрицательном числе, будет выдавать положительное.
Аноним 25/06/17 Вск 20:40:07  1011636
>>1011623
Парень, ставь mit scheme и переставай зафлуживать тред :)

1 ]=> (define (abs x) (if (< x 0) (- x) x))

;Value: abs

1 ]=> (abs -33)

;Value: 33
Аноним 25/06/17 Вск 21:12:39  1011643
>>1011636
У тебя должно было вернуть -33, отрицательное число должно было вернуть. В том то и ошибка.
Аноним 25/06/17 Вск 21:15:24  1011644
>>1011643
Схуяли?
Аноним 25/06/17 Вск 21:18:45  1011649
>>1011636
Все разобрался. Минус на минус дает плюс. Не понял условие, думал, что на отрицателный х должен быть отрицателный результат.
Аноним 25/06/17 Вск 21:27:09  1011658
>>1010719
Какой именно лисп ты имеешь в виду? И что там ненормального с вводом/выводом
Аноним 26/06/17 Пнд 22:58:33  1012134
https://atom.io/packages/atom-slime
Таки дошли у кого-то руки, запилили слайм под богомерзкий атом.
Аноним 27/06/17 Втр 00:38:51  1012181
>>1012134
Хера ты очнулся, проекту 2 года уже.
Аноним 27/06/17 Втр 00:42:50  1012183
>>1012181
А он как-то до этого на глаза не попадался
Аноним 02/07/17 Вск 16:42:52  1015108
Хочу понять как реализованы базовые функции в Scheme/Racket. Как это можно узнать? По репозиторию на гитхабе лазил, но найти там трудновато.
Аноним 03/07/17 Пнд 07:20:29  1015371
На кложе можно под андроид писать?
Аноним 03/07/17 Пнд 09:26:13  1015387
>>1015371
В целом да, правда не знаю насколько удобно.

https://www.infoq.com/news/2015/08/clojure-native-android-apps

Можно еще писать под React Native для андроид.
Аноним 03/07/17 Пнд 16:29:30  1015659
>>1015371
Нет, горячая замена кода там чееж жопу сделана. Спасибо дальвику
Аноним 03/07/17 Пнд 18:52:59  1015746
>>1015371
Вроде как есть возможность, но не стоит.
Аноним 05/07/17 Срд 07:42:50  1016710
А десктопные приложения на кложе можно писать?
Аноним 05/07/17 Срд 07:53:55  1016713
>>1015659
На новых девайсях давно уже не dalvik, а йоба поэффективнее.
Аноним 05/07/17 Срд 10:25:30  1016767
>>1016710
Можно, разрешаю.
Аноним 05/07/17 Срд 11:31:07  1016790
>>1016713
Тогда тем более
Аноним 05/07/17 Срд 12:24:13  1016813
>>1016713
Байт-код тот же и механизмы все те же. Просто вместо JIT теперь прекомпиляция.
Аноним 05/07/17 Срд 13:01:28  1016835
>>1016813
А кросскомпиляция в Котлин есть?
Аноним 05/07/17 Срд 13:44:35  1016861
>>1015371
Если уже и можно, то не нужно
https://gitlab.com/eql/EQL5-Android
Аноним 05/07/17 Срд 13:52:39  1016869
>>1016813
>Просто вместо JIT теперь прекомпиляция.
>Просто
Для динамического языка, который тоннами создает классы в рантайме, это нихуя не просто. Раньше приходилось изъебываться генерацией dex'ов в рантайме и последующей их подгрузкой дальвиком, который далее их джитил. Теперь, насколько я понимаю, задача усложнилась и стала ещё более ресурсоемкой
Аноним 05/07/17 Срд 13:56:59  1016875
>>1016835
Чиво блять?
>>1016813
Поправка, с 24 там ART с JIT.
Аноним 05/07/17 Срд 23:11:37  1017185
Ошибка? Должно быть просто 2, 3 и 4?
Аноним 05/07/17 Срд 23:44:24  1017203
>>1017185
В чем ошибка? В том что 1 будет применено к 2,3,4, а не 1,2,3,4?
Аноним 05/07/17 Срд 23:46:10  1017205
>>1017203
Да. 1 это не аргумент
Аноним 08/07/17 Суб 11:04:48  1018545
http://eudoxia.me/article/common-lisp-sotu-2015

ченить за 2 года поменялось?
для ИТ срок громадный, а для говномамонта общелиспа похоже новье.
Аноним 08/07/17 Суб 12:22:34  1018573
Анон, посоветуй гайдов по spacemacs. Второй день не могу вкатиться. Открыл гайд C-h t, а там половина шорткастов не работает, так как у меня evilmode.
Аноним 08/07/17 Суб 16:41:08  1018720
>>1018573
https://practicalli.github.io/

Там 4-й гайд по спейсмаксу.

Собственно этот - https://practicalli.github.io/spacemacs/
Аноним 08/07/17 Суб 16:44:52  1018723
>>1018720
Спасибо.
Аноним 08/07/17 Суб 21:52:17  1018934
>>1018573
Прям вот двачую. Так то все понятно, проме гита. Сегодня удолил весь проект, и ххуй смог откатить. Заебок.
Аноним 09/07/17 Вск 00:07:36  1019017
Вот на Java веб-приложениях что EJB, что Spring структура одна - Controller-Service-Repository, где каждый слой отвечает за своё. Можно и иначе, но будет говнокод.
А как на Clojure писать грамотно? Будут ли подобные слои?
Антон 09/07/17 Вск 18:11:40  1019643
Я правильно понимаю что на Common Lisp нельзя определить свой класс как потомок sequence и переопределить для него функции elt, length, etc.. ?
Антон 09/07/17 Вск 19:36:50  1019708
Какие есть для коммон лиспа библиотеки для удобного и современного стиля функционального программирования?
Типо как https://github.com/magnars/dash.el для Emacs Lisp.
Аноним 09/07/17 Вск 21:29:17  1019782
Все, заебался я с этой БДСМной чистотой. Возвращаюсь в стан динамикобогов.

Кложаскрипт тут обсуждается?
Какой тулинг сейчас самый модный? Кто-то пишет про figwheel, кто-то про boot-*. Что посоветуете?
Аноним 09/07/17 Вск 22:14:43  1019893
>>1019708
мап, фильтр и редьюс на клиспе пишется за 3-4 строчки
Аноним 09/07/17 Вск 22:24:49  1019930
>>1019893
> мап, фильтр и редьюс на клиспе пишется за 3-4 строчки
мап(который одновременно ещё и зип) и редьюс там уже есть и так

А вот фильтра нет. И партиал-аппликате и функшон-сомпозе
и ещё кучи всяких полезностей

> пишется за 3-4 строчки
Ну так кто-то должен был уже написать
Аноним 09/07/17 Вск 22:59:10  1019959
Как то после сиподобных языков кложа сложно заходит, до сих пор не могу въехать в хешмапы.
Аноним 09/07/17 Вск 23:24:50  1019974
Читаю сикп. До главы с ковычкой всё было понятно. Но что значит эта кавычка? Видел (error "какой-то текст") Значит одинарная кавычка это не строка, а что-то другое. Но ведёт себя похоже. Вот например тут во втором примере куда-то пропал символ пробела между a и b ходя тожна была пропасть только a если бы эта кавычка была просто строкой.
Аноним 10/07/17 Пнд 00:54:05  1020036
>>1019974
> Читаю сикп
лучше перед сикпом почитай хотя бы какие-то основы по лиспу или схеме
иначе будешь кучу таких дурацких вопросов задавать
Аноним 10/07/17 Пнд 11:56:55  1020257
>>1019974
Ковычко - это цитирование. Нет ковычко - списко вычисляецо (+ 1 2) -> 3.
Есть ковычко - списко не вычисляется, а остается как есть '(+ 1 2) -> (+ 1 2).
Ковычко 'something - сахар для (quote something). quote - это специальный оператор, предотвращающий вычисление своего оргументо.
Аноним 10/07/17 Пнд 12:10:11  1020274
>>1020257
>quote - это специальный оператор, предотвращающий вычисление своего оргументо.
Какой ужас. Все через жопу.
Аноним 10/07/17 Пнд 14:36:21  1020368
>>1020274
Если не ошибаюсь во всех лиспах так. Иначе как сказать интерпретатору, что первый аргумент списка не функция, только пометив список.
Аноним 10/07/17 Пнд 16:02:33  1020439
>>1020274
Не через жопу, а семантика. quote + eval - одна из многих фич лиспа, перекочевавшая в эти ваши JS и PHP.
Аноним 10/07/17 Пнд 17:01:12  1020498
>>1020439
> в эти ваши JS и PHP
Сам то на чем пишешь?
Аноним 10/07/17 Пнд 17:23:32  1020521
>>1020498
На всем, до чего руки дотянутся.
Аноним 10/07/17 Пнд 17:24:54  1020522
>>1020521
А на эликсире писал?
Аноним 10/07/17 Пнд 23:14:08  1020840
>>1019017
бамп
Аноним 11/07/17 Втр 00:35:30  1020917
Сегодня поигрался с коммон лиспом. Понравился синтаксис, но названия функций просто мрак. Потом брмбануло, и я дропнул. Попробую схемку. Анон, что подскажешь? Знаю руби и жс
Аноним 11/07/17 Втр 07:28:30  1021009
>>1020917
дропнул из-за названий, ты еблан?
Аноним 11/07/17 Втр 09:43:54  1021041
>>1020522
Только поигрался с ним один вечерок.
Аноним 11/07/17 Втр 18:05:07  1021382
>>1020917
Clojure.
Аноним 11/07/17 Втр 19:22:40  1021426
>>1021009
Ну чего сразу обзываться-то? Вот в рубях отличные названия, а в космонавтов говно
Аноним 11/07/17 Втр 19:23:15  1021427
>>1021426
Блин какие космонавты. В коммоне
Аноним 11/07/17 Втр 20:21:11  1021487
>>1021426
Как макросы освоишь, так перестанешь обращать внимание на названия и познаешь истинный дзен диска.
Аноним 11/07/17 Втр 21:09:31  1021544
>>1020917
> названия функций просто мрак
>брмбануло
чет лол
Аноним 13/07/17 Чтв 15:40:28  1024134
>>1015108
ns.synrc.com/publications/cat/CPS/lisp.pdf
Аноним 13/07/17 Чтв 15:50:48  1024144
>>1020917
Что за названия такие? car / cdr?
Аноним 13/07/17 Чтв 17:56:27  1024221
>>1024144
Точечная пара состоит из двух регистров address и decrement. Эти функции отдают содержимое этих регистров, contents of address/decrement register - car/cdr
Аноним 13/07/17 Чтв 20:41:18  1024360
>>1020917
>Понравился синтаксис
>названия функций просто мрак
>Знаю руби и жс
Хеллоуворлдщиков с необсохшим смуззи на губах нам ещё не хватало.
>>1021041
Ты так со всеми языками """"""""""""знакомишься"""""""""""""""?
Аноним 13/07/17 Чтв 21:16:56  1024397
>>1020036
pcl читал, но дропнул через сотню страниц т.к. захотел класику

>>1020257
А подробнее про это где пишут? Чтобы прям по шагам разбирали как строчки с этой кавычкой интерпритатор обрабатывает.
Аноним 13/07/17 Чтв 21:21:51  1024403
>>1024397
Читай ебаный SICP
Аноним 13/07/17 Чтв 21:27:42  1024414
У каких кложуроредакторов есть приличная поддержка удаленной разработки?
В atom+nuclide можно добавлять удаленные проекты, в емаксе есть tramp. Что еще есть?
Аноним 13/07/17 Чтв 21:27:54  1024416
>>1019930
>А вот фильтра нет.
remove-if же
>И партиал-аппликате и функшон-сомпозе
Это уже в александрии есть
Аноним 13/07/17 Чтв 21:29:03  1024418
>>1024414
Зачем тебе что-то ещё?
Аноним 13/07/17 Чтв 21:34:02  1024427
>>1024418
Емакс мне просто не нравится. Нуклиде требует установки серверной части. Хочется и простоту(например, подключение и копирование поверх SSH), и приятный редактор.
Аноним 13/07/17 Чтв 22:10:39  1024480
>>1021041
А хрен ли с этим элексиром дольше знакомиться-то, если уже хорошо знаком с эрлангом и хачкелем?
Аноним 13/07/17 Чтв 22:11:07  1024481
>>1024360
>>1024480
Аноним 13/07/17 Чтв 22:26:15  1024500
Лисперы, кто-нибудь писал на Joxa иди LFE?
Аноним 13/07/17 Чтв 22:30:23  1024505
Джентльмены, я тут пытаюсь в СИКП, накатал свою парашу в scheme, а как запустить своё творение - не могу понять.
Аноним 13/07/17 Чтв 22:40:44  1024515
Из терминала или из среды Dr. Racket. В терминале можно raco make <имя файла> или raco exe <имя файла>

Только узнал, что raco может декомпилировать байткод, надо будет попробовать.
Аноним 13/07/17 Чтв 23:05:16  1024537
>>1024505
А куда ты его катал, еслм не знаешь как запустить? Реплом не польхуешься что ли сука?
Аноним 13/07/17 Чтв 23:05:51  1024538
>>1024500
Не нужны
Аноним 13/07/17 Чтв 23:08:59  1024542
>>1024537
Скачал с сайта MIT Scheme и начал писать, но от него ни ответа ни привет, даже числа складывать не хочет.
Аноним 13/07/17 Чтв 23:14:06  1024546
>>1024542
Ну дык результат вычисления выражений только в репле сам выводится, а ты ж небось ему файл скармливаешь. В любом случае, рекомендую скачать drRacket как более дружелюбную для новичков среду
Аноним 13/07/17 Чтв 23:18:18  1024548
>>1024538
Виртуальная машина Эрланга очень даже располагает писать под нее. Какие сейчас лиспы живы кроме кложур?
Аноним 13/07/17 Чтв 23:19:29  1024550
>>1024542
Не то скачал. Качай Racket, он современный, все инструменты есть.
Аноним 13/07/17 Чтв 23:24:43  1024557
>>1024548
Общелисп только и жив.
Аноним 13/07/17 Чтв 23:26:25  1024558
>>1024557
где-то вдали заплакал Рич Хикки

Но как же все эти хипстеры с ливкодингом на реагенте? Все уже умерли?
Аноним 13/07/17 Чтв 23:34:44  1024560
>>1024557
Очень смешно. Где вакансии? Где компании его использующие? Где проекты? Где сообщество?
Аноним 13/07/17 Чтв 23:38:12  1024562
>>1024558
>хипстеры с ливкодингом на реагенте
я тут
Аноним 13/07/17 Чтв 23:39:03  1024564
>>1024558
Не знаю, такими эзотерическими штуками не интересуюсь.
Аноним 13/07/17 Чтв 23:41:30  1024565
>>1024560
В гугле забанили?
Аноним 13/07/17 Чтв 23:44:45  1024566
>>1024562
Лейн или бут?
Аноним 13/07/17 Чтв 23:55:12  1024574
>>1024565
Это были не вопросы.
Аноним 14/07/17 Птн 00:38:23  1024587
>>1024548
Интересно было бы пощупать что-то статически типизированное, компилирующееся в BEAM. Был YHC, но он сдох. Грустно, хоть сам садись и пиши.
Аноним 14/07/17 Птн 03:38:57  1024635
>>1024403
Так его я и перестал понимать как дошёл до ковычек
Аноним 14/07/17 Птн 03:42:03  1024636
>>1020368
> Иначе как сказать интерпретатору, что первый аргумент списка не функция, только пометив список.
(list a b c)
Аноним 14/07/17 Птн 06:15:28  1024649
>>1024635
f(x) = x, что тут непонятного?
мимобайтоеб
Аноним 14/07/17 Птн 08:53:27  1024692
>>1024397
> А подробнее про это где пишут?
Смотри здесь: >>1024134
Аноним 14/07/17 Птн 15:51:40  1024922
Screenshot3.png (20Кб, 439x459)
Решил почитать СИКП и в первой же главе застрял.
Упражнение
>Какой результат напечатает интерпретатор в ответ на каждое из них?

Что это за строчка как мне её понять?
Аноним 14/07/17 Птн 16:01:15  1024928
>>1024922
Наркоман штоле аль не выспался? Равенство конечно. Печатать будет булевские значения обычно, True аль False.
Аноним 14/07/17 Птн 16:04:48  1024931
>>1024928
Ну у меня же выше a равно трем, а b четырем.
Разве нет?
Аноним 14/07/17 Птн 16:07:49  1024934
>>1024931
Ладно. В общем, по скольку, они неравны то значением этого выражения будет False.
Аноним 14/07/17 Птн 16:09:26  1024935
>>1024934
Я понял наверно, спасибо.
Аноним 14/07/17 Птн 16:53:33  1024963
Может и мне поможете?
>>1024961
В чем моя проблема?
Аноним 14/07/17 Птн 17:53:24  1024992
Не могу в racket считать ввод с терминала. Как-то там все запутано. Необходимо получить ввод 3 чисел с терминала в функцию, то есть функция принимает 3 аргумента. Пытался делать так (function (read-line)), но ничего не получается. Может нужно вставить read-line в объявление функции?
Аноним 14/07/17 Птн 18:06:56  1025003
>>1024922
a == b
Аноним 15/07/17 Суб 05:03:18  1025323
http://www.lambdanative.org/

Пробовал кто?
Аноним 15/07/17 Суб 06:37:31  1025324
graph.jpg (102Кб, 1542x540)
>>1025323
Картинка выглядит сомнительно, да еще и исследование 2000 года.
Аноним 15/07/17 Суб 16:55:34  1025445
>>1024692
Предлагаешь ещё одну книг прочитать? Не нашёл в оглавлении упоминания про кавычки.
Аноним 15/07/17 Суб 19:07:05  1025494
>>1025445
Предлагаю перед чтением любой книги открывать черепную коробку и вставлять туда мозг.
Аноним 15/07/17 Суб 19:16:56  1025500
>>1025323
Индусы пишут на лишпе?
Аноним 15/07/17 Суб 20:26:07  1025553
>>1025500
Университет Британской Колумбии (UBC), на курсере есть их курсы, по программе HTDP, на Racket.
Аноним 15/07/17 Суб 20:26:48  1025555
>>1025445
Это не такое важное, чтобы в оглавлении было.
Аноним 17/07/17 Пнд 11:01:48  1026369
>>1025445
Глава 1
Аноним 17/07/17 Пнд 22:45:55  1027567
Думаю вкатиться в sicp, затем в кложу. Насколько сильно схем и кложа отличаются?
Аноним 17/07/17 Пнд 23:24:44  1027583
>>1027567
Примерно как си и жаба. Или, что точнее, как схема и жаба.
Аноним 18/07/17 Втр 16:37:14  1027884
http://www.red-lang.org/2017/07/063-macos-gui-backend.html
Аноним 18/07/17 Втр 17:06:30  1027901
Вопрос от ньюфага, чтобы запустить scheme мне нужно его добавить в DrRacket извне? Я запустил учебный язык, но это не совсем то, не хочет принимать (define x (cons 1 2)), например.
Аноним 18/07/17 Втр 17:11:07  1027904
bandicam 2017-0[...].jpg (45Кб, 488x294)
Это что за хуйня
Аноним 18/07/17 Втр 17:27:19  1027918
>>1027904
>HomeLisp
Это что за хуйня?
Аноним 18/07/17 Втр 17:29:06  1027920
>>1027904
А что это за значок? Ты что халфлюфе третий делаешь?
Аноним 18/07/17 Втр 17:30:17  1027922
>>1027918
Лисп для домохозяек.
Аноним 18/07/17 Втр 17:34:33  1027923
>>1027922
>>1027918
Дайте ссылку на норм лисп. 24 часа назад в программирование вкатился
Аноним 18/07/17 Втр 17:49:28  1027931
>>1027901
Первая строка кода определяет используемый язык, для Racket будет #lang racket. Можно еще менять в настройках среды Dr. Racket.
Аноним 18/07/17 Втр 17:52:06  1027933
>>1027923
https://clojure.org/
Аноним 18/07/17 Втр 18:01:13  1027939
>>1027931
read: #lang not enabled in the current context

не помогло
Аноним 18/07/17 Втр 18:05:58  1027940
>>1027939
Открываем официальный сайт и смотрим примеры кода. Видим следующее

#lang racket

(require 2htdp/image) ; draw a picture
(let sierpinski ([n 8])
(cond
[(zero? n) (triangle 2 'solid 'red)]
[else (define t (sierpinski (- n 1)))

http://racket-lang.org/
Аноним 18/07/17 Втр 18:07:14  1027941
>>1027940
Да я только что сам разобрался, спасибо.
В режиме ученика нельзя прописывать lang просто.
Аноним 23/07/17 Вск 11:32:55  1030060
Решал задачки с 4clojure.com. Наткнулся на такую:
((fn foo [x] (when (> x 0) (conj (foo (dec x)) x))) 5)
что будет на выходе?
Ответ: [5 4 3 2 1] - какого хуя? Разве функция foo не должна сработать до функции conj? Если так, то foo должно вызваться 5 раз, и затем, когда в foo передастся (dec 1), должна начаться свертка рекурсии, функция conj сработает для х = 1 и пустого вектора, затем для х = 2 и вектора [1], добавив 2 в конец нового вектора, т.е. уже будет [1 2] и т.д. Т.е. на выходе имеем вектор [1 2 3 4 5]. Так какого хуя ответ - [5 4 3 2 1]?
Разве в кложе не аппликативный порядок вычислений, а нормальный?
Аноним 23/07/17 Вск 11:47:42  1030064
>>1030060
А, все понял. Просто я тупой.
Аппликативный порядок как раз и подразумевает, что сначала вычисляется conj, а затем вычисляется foo. И каждый раз идет присоединение к (foo x) значения x + 1. Спасибо за помощь!
Аноним 23/07/17 Вск 11:50:24  1030065
Чет сложно в кложуру вкатиться.
Емакс страшный, лайт тейбл мертвый, найткод аскетичный, а в атоме все через задницу, даже proto-repl нормально не работает.
Не опускаться же до вима.
Аноним 23/07/17 Вск 11:53:36  1030067
>>1030065
http://spacemacs.org/
Аноним 23/07/17 Вск 11:58:45  1030070
>>1030067
И спейс, и акву пробовал — какое-то оно для пришельцев. Я несколько раз пытался вкатиться в емаксы, каждый раз хотелось убежать.
Аноним 23/07/17 Вск 15:28:25  1030130
>>1030070
Саблайм с плагином SublimeRepl.
Аноним 23/07/17 Вск 16:03:56  1030148
>>1030070
вкатывайся еще, с первого раза мало кто осиливает
Аноним 23/07/17 Вск 18:24:14  1030203
>>1030065
И редактор, в общем-то, не самая большая проблема. Самая большая проблема в том, что я не могу понять, как заставить связку редактор-консоль-figwheel-cljsrepl-браузер работать.

Запустил простой проект. `lein figwheel` включается в режиме cljs-repl, выражения вида `(.log js/console "Hello World")` дают ожидаемый результат в браузерной консоли.
LightTabe подключается с этому фигвилу, но в режиме clj-repl — в результате `(printl "Hello world")` печатает строку в терминале, а не в браузере, и js/X объекты мне не доступны. Подключение через nREPL в атоме приводит к такому же результату.

Если же запустить proto-repl, и уже в нем вручную импортировать figwheel-sidecar и запустить сам фигвил — все работает как надо. Но делать так каждый раз не весело будет.
Аноним 23/07/17 Вск 18:58:12  1030216
>>1030203
А зачем тебе печатать строку в браузере?
Аноним 23/07/17 Вск 19:07:42  1030220
>>1030216
Строка — самый простой пример. Меня больше интересуют извращения с re-frame/dispatch.
Допустим, я хочу протестировать некую последовательность событий. Как мне это сделать?
Вариант 1: протыкать все кнопки вручную.
Вариант 2: сохранить в редакторе`#_(dispatch-some-events)` и исполнять это выражение в cljs-repl по мере надобности.
Аноним 24/07/17 Пнд 00:07:44  1030360
>>1030065
Похапэ ждет тебя.
Аноним 24/07/17 Пнд 09:46:12  1030446
>>1030203
ну вроде как фигвил имеет свой собственный репл независимый от cljs-repl. Поэтому там проблемы с их линковкой. Если получится завязать фигвиловский репл с каким-нибудь редактором то отпиши в тред плизики :3
Аноним 24/07/17 Пнд 20:49:47  1030820
>>1030446
И так убил на это слишком много времени, больше возиться как-то не хочется.
Пока остановился на таком варианте:
В терминале — `rlwrap lein repl`, `(figwheel-sidecar.repl-api/start-figwheel!)`.
В атоме — подключаю proto-repl через nREPL, `(cljs-repl)`.
Многовато лишних движений(аж целых 2!), репл работает медленновато, но терпимо. Еще надо протестировать, как эта связка поведет себя при потере сети.
Аноним 25/07/17 Втр 11:35:08  1031095
Почему потенциал по написанию DSL на лиспе обычно так и не используется, а код пишут именно на лиспе?
Аноним 25/07/17 Втр 16:24:50  1031310
>>1031095
Может потому, что это лисперы любят делать eDSL?
Аноним 25/07/17 Втр 21:42:23  1031637
>>1031095
[:span {:class "foo"} "bar"] — что это, если не DSL?
DSL не обязан быть полностью отличным от основного языка. Кому надо — могут обмазываться reader macros и превратить лишп в хачкель, но часто ли это требуется?
Аноним 25/07/17 Втр 22:33:49  1031674
>>1031637
>[:span {:class "foo"} "bar"]
Как это прочитать? Вектор объектов?
Аноним 25/07/17 Втр 23:45:27  1031718
>>1031674
Это читается "декларация html-элемента, который должен отрендериться как <span class="foo">bar</span>". Синтаксически это просто гетерогенный вектор, но по сути это DSL.
Аноним 26/07/17 Срд 12:47:12  1031912
Я в емаксе работаю, думаю даже не буду заморачиваться с попытками фигвил подружить и редактор, там какая-то черная магия
Аноним 28/07/17 Птн 17:27:36  1033356
Насколько разработка приложений на лиспе медленней аналогичных на питоне. И насколько она быстрее(быстрее ли) чем разработка на java?
Аноним 29/07/17 Суб 09:38:20  1033769
>>1033356
Кода на лиспе значительно меньше, но быстрее ли его писать, думаю не сильно, на джаве можно огромными кучами кода ворочать в всяких модных IDE, при должном скилле думаю весляр с 20 летним опытом на жабе будет офигенски быстро генерить кодяру для какого-то фреймворка.
Лисп не за скорость разработки любят, за скорость разработки можно любить пайтон и руби и я слышал перл
Аноним 29/07/17 Суб 21:09:39  1034121
Интересно, а кто-нибудь тут работает Clojure-программистом? На всю Россию одна вакансия в Москве и всё. Вроде и хочется изучить, но какой профит?
Аноним 31/07/17 Пнд 11:32:11  1034785
>>1033356
В современном мире скорости написания примерно одинаковы: в лиспе код за тебя пишут макросы, в других языках - IDE.
Аноним 31/07/17 Пнд 19:13:53  1035021
>>1034785
Я говорил не про скорость написания кода, а про скорость разработки приложений.
Аноним 05/08/17 Суб 14:31:11  1038484
>>1035021
Дурацкий вопрос, субъективщина. Сам попробуй и прикинь нравицца тебе или не
Аноним 05/08/17 Суб 17:19:41  1038558
>>1011075
А какие именно у хаскеля проблемы с IO?
Аноним 05/08/17 Суб 18:40:29  1038632
В чем фишка лиспа? Сейчас же в каждом втором языке есть лямбда-выражения. Чем он лучше скажем JavaScript'а?
Аноним 05/08/17 Суб 18:43:48  1038633
>>1038632
>фишка лиспа
Homoiconicity via S-expressions.
Аноним 05/08/17 Суб 19:47:20  1038684
>>1038632
Язык для операционной системы Emacs.
Аноним 05/08/17 Суб 21:51:53  1038741
>>1038632
Метапрограммирование, компиляция кода в риалтайме, интерактивность системы с горячей подгрузкой кода.
Аноним 05/08/17 Суб 21:53:57  1038744
>>1034785
>В современном мире скорости написания примерно одинаковы
Нет конечно. У лимпа цикл "исправить ошибку - перезапустить" гораздо меньше, за счет этого скорость разработки приложений выше.
Аноним 05/08/17 Суб 23:51:10  1038802
>>1038633
И какой от этого профит?

>>1038684
Лучше бы в этой системе был InelliSense и рефакторинг.

>>1038741
>Метапрограммирование,
Есть в C++
>компиляция кода в риалтайме,
Есть в Java и C#.
>интерактивность системы с горячей подгрузкой кода.
Есть в JavaScript и Python, в Java тоже можно подгружать классы.
Аноним 06/08/17 Вск 00:23:15  1038820
>>1038802
>Есть в ...
В лиспе оно есть все сразу, сделано нормально, и органически сочетается друг с другом, благодаря чему возникает синергетический эффект.
Аноним 06/08/17 Вск 00:46:36  1038827
>>1038820
Синтаксис ебанутый, неудобные скобочки везде, где надо и не надо.
Аноним 06/08/17 Вск 07:53:54  1038884
>>1038802
>И какой от этого профит?
-> >>1038741
сам попробуй

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 190 | 7 | 89
Назад Вверх Каталог Обновить

Топ тредов
Избранное