2008-09-09 3 views
19

내 프로젝트에 하스켈을 더 사용하고 싶습니다. 웹 앱용으로 사용하기 시작하면 도움이 될 것입니다. 나는 한두 번 두 번이나 행복하게 노력했지만 땅에 떨어지는 데 어려움을 겪었습니다. 내가 사용할 수있는 더 단순하거나 더 일반적인 (더 많은 램프와 같은) 프레임 워크가 있습니까? 아니면 그냥 또 다른 시도를 해줘야합니까?하스켈에서 웹 앱을 작성하는 가장 간단한 방법은 무엇입니까?

답변

1

위키의 Haskell Web Development 문서에 나열된대로 CGI 및 (x) html 연결자 라이브러리를 사용할 수 있습니다. haskell에서의 웹 프로그래밍을위한 라이브러리, 프레임 워크 등의 더 큰 개요는 Practical web programming in Haskell에서 찾을 수 있습니다.

+0

CGI 특히 아파치를 실행하는 시스템에 매우 간단합니다. HTML 페이지 (또는 그 일부)를 출력하는 실행 파일을 만들면됩니다. url (GET) 문자열을 구문 분석하고 환경 변수를 사용하여 POST 데이터를 시스템에서 가져올 수 있습니다. 간단하지만 그 부분들로 시스템을 만드는 것은 작업을 필요로합니다. –

4

당신이 HApps로 이동하기로 결정했다면 당신은 아마 HApps 응용 프로그램으로 개발중인이 좋은 예 구동 튜토리얼 체크 아웃 할 수 있습니다 : HApps Tutorial

0

도 (링크가 감가 상각) Hope가 그것을하지만 HAppsWASH만큼 많은 견인력을 얻지 못한 것 같습니다. 그러나이 사이트는 약 1 년 동안 조용했습니다.

1

Yesod가 좋은 선택이 될 것입니다, 당신은 오라일리의 Yesod Web Framework Book 온라인을 찾을 수 있습니다.

2

Web Application Interface, WAI는 앱을 빌드 할 수있는 아주 멋진 기본 레이어입니다. WAI와 함께 잘 작동하는 라우팅, 템플리 팅 등을위한 hackage에 대한 훌륭한 라이브러리가 많이 있습니다. 이것이 내가하는 일입니다.

4

최고의 기능성/코드 크기 비율이라는 아이디어로 MFlow를 개발했습니다. MFlow는 다른 프레임 워크를 염두에 두지 않고 웹 프로그래밍의 노이즈와 오류 비율을 크게 줄이기 위해 웹 애플리케이션의 문제를 해결하기 위해 하스켈을 제한적으로 사용합니다. MFlow 응용 프로그램의 전체 탐색은 컴파일 할 때 안전합니다. 그것은 표준 웹 라이브러리를 사용합니다 : WAI, formlets, stm, blaze-html ..

자신을위한 판사 : 이것은 3 페이지의 완전한 응용 프로그램입니다. 루프에서는 두 개의 숫자를 물어보고 합계를 표시합니다. 당신이 원하는대로 뒤로 버튼을 누를 수 있습니다 :

module Main where 
import MFlow.Wai.Blaze.Html.All 

main= do 
    addMessageFlows [("sum", transient . runFlow $ sumIt)] 
    wait $ run 8081 waiMessageFlow 

sumIt= do 
    setHeader $ html . body 
    n1 <- ask $ p << "give me the first number" ++> getInt Nothing 
    n2 <- ask $ p << "give me the second number" ++> getInt Nothing 
    ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink() << p << "click here" 

약간의 수정을 가하여 상태를 지속시킬 수 있습니다.

http://hackage.haskell.org/package/MFlow

예는 여기에 있습니다 : http://haskell-web.blogspot.com.es/

관련 문제