2012-04-03 2 views
26

하스켈의 Functional Reactive Programming에 대해 살펴보기 시작했습니다. 반응 설정에서 GUI 바인딩 (gtk 포함)을 실험하고 싶습니다.선택할 수있는 FRP 패키지는 무엇입니까?

지금 자몽, 리 액티브 바나나, 버스터를 조금 봤는데 하나 또는 다른 패키지를 사용하는 기쁨/공포에 대한 증거가 필요합니다. 내가 가진

모든 이들 예비 oppinions입니다 :

  • 내가 추상화 된 백엔드 아이디어에 대한 ambivalet 느낌이 나는이 자신을 GTK하도록하여 FRP 패키지의 결합은 어떤 일을 신경 쓰지 않는다 (즉, 몽)이있다 .. 나는 형의 이론은 흥미 동안

  • , 나는 또한 넣어 것 실제 프로그램에 대한 간단한 인코딩을 소중히 .. 조금 떨어져 grapfruit을-기록

물론, 그렇지 않으면 당신이 다르게 생각하도록 설득하지 않는 한 :-)

+4

"graprefuit"및 "reactive-banana"? frp와 과일 사이에 특별한 친화력이 있습니까? –

+1

@benw : "바나나"부분은 내가 아는 가장 재미있는 제목 중 하나 인 종이에 대한 참조라고 생각합니다. [바나나, 렌즈, 봉투 및 철조망을 이용한 기능 프로그래밍] (http://research.microsoft.com/en-us/um/people/emeijer/Papers/fpca91.pdf). – hammar

+1

@ 해머 : 하하, 멋지다! 실제로, 나는 여러 가지 이유로 "바나나"라는 이름을 선택 했었지만 나는 그 한 가지 언급을 좋아한다. –

답변

18

일반 FRP 만 사용하고 "미리 만들어진"추상화를 사용하지 않고 GUI 프레임 워크에 가까이 있고 싶다면 , 반응 - 바나나는 내 생각에 가장 실행 가능한 옵션입니다. 이것은 명시 적으로 기존 프레임 워크와의 바인딩을 목표로하고 있으며, "실제"사용 (문제를 일으킬 수있는 실험적, 의미 론적 작업을 수행하지 않음)을 위해 설계되었습니다.

이벤트 기반 프레임 워크를 반응식 바나나에 바인딩하는 방법을 보려면 reactive-banana-wx을 참조하십시오. 매우 간단합니다. Gtk2Hs에 대한 바인딩을 한 번 작성했습니다 (코드를 잃어 버렸습니다. 불행히도). 파일은 50 줄을 넘지 않았습니다. 이는 거의 반작용 바나나 -wx 코드의 직접 음역이었습니다.

나는 단순한 이유 그것은 그 hasn't been updated since 2009를 들어, 버스터를 사용에 대한 추천 및 7

다른 "생산 중심의"FRP 프레임 워크는 GHC 구축하지 않습니다

, 반응 바나나와 유사한 sodium (하지만 그것은 dynamic event switching (아직은 아니지만 coming to reactive-banana soon)이며, 병행성에 대해서는 "파티션"이라는 개념이 있지만 아직 채택되지 않았습니다.) 및 netwire (화살표가있는 FRP, 반응성 바나나 및 나트륨).

+2

업데이트 : 스위칭은 0.7.0.0 버전 – AndrewC

+1

에서 반응 형 바나나 상태입니다 (그러나 Heinrich Apfelmus는 여전히 (2013.06.20) [working on] (http://stackoverflow.com/questions/15396038/dynamic-event-switching- in-reactive-banana-causes-severe-leak # comment24927049_15396038) 동적 이벤트 전환의 가비지 수집이므로주의해서 사용하십시오.) – AndrewC

12

나는 FRP를 직접 실험 해왔고 지금까지 나를 위해 일하는 유일한 반응 형 바나나입니다. 나는 자몽이나 다른 것들을 쳐다 보지 않았다. 왜냐하면 그것들은 오래되어서 전혀 업데이트되거나지지 될 것 같지 않았기 때문이다. 간단히 살펴 보았지만, 솔직하게 말해서 모든 화살표 이론은 저를 내 렸습니다. 그리고 나는 간단한 일들조차하는 방법을 찾는 데 많은 어려움을 겪었습니다.

대조적으로 나는 Reactive-Banana로 작성된 SDL 바인딩에 꽤 많은 수의 딸꾹질 만 붙였습니다. Reactive-Banana를 선호하는 또 다른 이유는 Heinreich가 커뮤니티에서 매우 적극적이며 문제가 생길 때 도움이되는 답변을 자주 제공한다는 것입니다. 여기에있는 다양한 반응 - 바나나 질문을 살펴보면 그가 대다수에게 반응을 보였고 대개 Haskell 메일 링리스트에서 FRP 토론에 적극적으로 참여하고 있음을 알 수 있습니다.

+1

의견이 필요한 답변이 필요한 경우가 있습니다! 감사! –

관련 문제