Haskell GUI: Haskell สามารถทำได้มากแค่ไหน?


9

ฉันอยากลองใช้กราฟิกใน Haskell จากสิ่งที่ฉันเห็นห้องสมุดที่มีอยู่เป็นส่วนหน้าไปยังไลบรารี C / C ++ หรือสิ่งที่เป็นนามธรรมด้วยคุณสมบัติขั้นต่ำ ห้องสมุดระดับสูงดูเหมือนจะไม่เหมาะกับความต้องการของฉันดังนั้นฉันจึงเหลือไว้กับ front-end ระดับล่าง

สิ่งที่ฉันต้องการคือการแสดงไทล์และข้อความ - พื้นฐานสำหรับเกมที่ง่ายมาก ฉันรู้วิธีการทำเช่นนี้กับ C และคิดว่าฉันสามารถเขียนกราฟิกใน C และเชื่อมต่อกับ Haskell ทางเลือกคือการเขียนกราฟิกโดยใช้ห้องสมุด Haskell

คำถามของฉันคือห้องสมุด Haskell สามารถใช้งานได้ตามที่ฉันต้องการหรือไม่ ฉันไม่ต้องการงอไปข้างหลัง ถ้า C สามารถทำได้ดีกว่าที่ฉันอยากรู้


1
ควรทำเท่าไรหากคุณไม่บอกเราว่าคุณต้องทำอะไร เท่าไหร่สามารถทำได้เป็นคำถามที่แตกต่างกันหนึ่งว่าแม้อาจจะมีในหัวข้อ
yannis

สวัสดี Pubby8 หากคุณสามารถอัปเดตคำถามของคุณด้วยสิ่งที่คุณพยายามทำนั่นคือสิ่งที่คุณคิดเกี่ยวกับเรื่องนี้อย่าลังเลที่จะติดธงทำเครื่องหมายเพื่อเปิดใหม่

2
ทำไมไม่ใช้ SDL มันเป็นระดับต่ำ (สำหรับ Haskell) ใช่ แต่ฉันไม่คิดว่าการเขียนกราฟิกใน C จะให้ประโยชน์กับคุณมาก
Anton Barkovsky

คำตอบ:


7

SDLเป็นห้องสมุดที่ดีกับการผูกที่ดี Haskellและอื่นห้องสมุดที่เกี่ยวข้องสำหรับภาพ , เสียงและข้อความเผื่อซึ่งพอบทเรียนที่มีอยู่เพื่อให้คุณได้รับออกจากพื้นดิน; ค่อนข้างต่ำมันต้องใช้ความระมัดระวังเล็กน้อยในการทำให้สิ่งต่าง ๆ สวยงามและใช้งานได้ แต่ในประสบการณ์ของฉัน SDL และ Haskell ทำให้การผสมผสานที่ยอดเยี่ยม


ฉันเคยใช้ SDL มาก่อนในฐานะห้องสมุด C รุ่น Haskell ใกล้เคียงกับ C มากแค่ไหน
Pubby

@ Pubby8: มันคล้ายกันมาก Haskell ทุกรุ่นมีการอธิบายว่าIOเกิดอะไรขึ้น
Jon Purdy

+1 ฉันทำตามคำแนะนำนี้เป็นครั้งที่สอง ฉันใช้ SDL กับ Haskell เพื่อเขียนโค้ดเกม 2D ขนาดเล็กจนถึงตอนนี้โดยไม่มีปัญหา
Andres F.

2

หากคุณถามว่ามีตัวเลือก C / C ++ ที่ดีสำหรับ Haskell ที่ทำ GUI ได้ดีหรือไม่ให้ลองหาดูเพิ่มเติม: http://qt-project.org/

กรอบงาน GUI ที่แข็งแกร่งที่สุดแน่นอนสำหรับ C ++

อย่างไรก็ตามหากคำถามของคุณคือ "พบสิ่งที่ดีกว่าใน Haskell" ฉันก็ไม่สามารถช่วยคุณได้: /

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.