[lisp] Lisp 또는 Scheme으로 웹 프로그래밍을 어떻게 할 수 있습니까?

저는 보통 PHP, Ruby 또는 Perl로 웹 앱을 작성합니다. 저는 Scheme 연구를 시작하고 있으며이 언어로 웹 프로젝트를 시도하고 싶습니다. 그러나 이것에 가장 적합한 환경이 무엇인지 찾을 수 없습니다.

다음 기능을 찾고 있습니다.

  • 요청 매개 변수를 가져 오는 간단한 방법 (예 : get-get #key, get-post #key, get-cookie #key).
  • MySQL 액세스.
  • HTML 양식 생성기, 처리, 유효성 검사기 등
  • 사용자 입력 데이터 필터링을위한 도우미 (htmlentities, 쿼리 입력을위한 이스케이프 변수 등)
  • 풀솜.
  • 그리고 GNU / Linux 친화적입니다.

따라서 모든 답변에 미리 감사드립니다.



답변

라켓 에는 필요한 모든 것이 있습니다. 라켓 웹 서버를 참조하십시오 튜토리얼 다음 문서를 . 웹 서버는 한동안 사용되어 왔으며 많은 기능을 가지고 있습니다. 아마도 포함되지 않은 유일한 것은 mysql 인터페이스이지만 PLaneT (라켓 패키지 배포 도구)에 패키지 로 존재합니다 .

업데이트 : Racket은 이제 DB 지원과 함께 제공되며 mysql을 포함한 여러 DB에서 작동합니다.


답변

Clojure를 살펴볼 수 있습니다 .

Clojure는 Java Virtual Machine을 대상으로하는 동적 프로그래밍 언어입니다. […] Clojure는 선택적 유형 힌트 및 유형 추론을 통해 Java 프레임 워크에 쉽게 액세스 할 수 있도록하여 Java 호출이 리플렉션을 피할 수 있도록합니다.

Clojure는 Lisp의 방언이며 데이터로서의 코드 철학과 강력한 매크로 시스템을 Lisp와 공유합니다.

Clojure에서는 Java와의 상호 운용이 간단하므로 필요에 따라 기존 Java 라이브러리를 재사용 할 수 있습니다. 웹 개발에 유용한 정보가 많이 있다고 확신합니다.

clojure-contrib 에는 SQL API가 있으며, ClojureQL 도있어 DB 액세스 요구 사항을 충족해야합니다.

Compojure 라는 Clojure 용 웹 프레임 워크가 개발 중입니다. 다른 것도있을 수 있습니다.

Clojure의 소스는 EPL 아래 github 에서 사용할 수 있습니다 . Linux에서 실행하는 것은 쉽습니다. git repos를 복제하고 .ant


답변

guile scheme으로 웹 개발을 할 수 있습니다 . 표준 라이브러리에는 html 생성, 조작 및 구문 분석에 매우 유용한 (sxml simple) 모듈이 포함되어 있습니다. 교활-WWW의 라이브러리는 HTTP에 대한 지원, CGI 등을 추가 교활-DBI 라이브러리는 MySQL을 사용하고 다른 데이터베이스에 대한 액세스를 제공합니다. 이러한 빌딩 블록을 사용하면 간단한 cgi 스크립트에서 자체 HTTP 서버가있는 웹 애플리케이션에 이르기까지 모든 것을 구현할 수 있습니다.


답변

Common Lisp 웹 프레임 워크 인 Weblocks를 사용해보십시오.

http://weblocks.viridian-project.de/


답변

나는 주제에 대해 꽤 광범위한 튜토리얼 / 전자 책을 썼습니다 : http://lispwebtales.ppenev.com/

요약 :

  • Common Lisp를 사용합니다.
  • Restas 프레임 워크를 사용합니다.
  • DB 액세스, 인증, HTML 생성 및 템플릿을 포함한 거의 대부분의 기본 웹 개발에 대한 예제가 있습니다.
  • Restas 문서는 거의 구식이기 때문에 내 튜토리얼은 최신 문서에 가장 가까운 것입니다.
  • 플러그인 가능한 인터페이스를 작성할 수있는 정책과 같은 몇 가지 고급 기능을 보여줍니다. 인증 프레임 워크와 같은 재사용 가능한 구성 요소를 작성합니다.
  • lisp 설치, ASDF 빌드 시스템 및 quicklisp 패키지 관리자 설정 등을 다룹니다.
  • 그것은 무료 온라인이고 내가 그것을 끝내 자마자 leanpub에서도 무료입니다. 소스는 CC 라이선스에 따라 https://github.com/pvlpenev/lispwebtales 에 있으며 소스 코드는 MIT입니다. 아직 모든 것이 게시되지는 않았으며 수정하는 중입니다.


답변


답변

Common Lisp에 관심이 있고 weblocks 경로를 따르지 않으려면 다음 설정을 권장합니다.

  1. Linux에서 SBCL을 사용하지만 다중 스레드 지원
  2. Hunchentoot를 웹 서버로 사용하여 세션 및 쿠키를 포함하여 필요한 모든 서버 처리를 제공합니다.
  3. ClSql을 사용하여 MySql과 통신하면 충분한 문서가 있으며 매우 안정적입니다.
  4. HTMl 세대의 경우 Dr Edi Weitz Cl-WHO (매우 잘 문서화 됨)를 사용할 수 있습니다.

위의 모든 내용은 GPL 또는 유사한 라이선스 (LISP 프로그램에서 더 많이 작동하는 라이선스)에 따릅니다.