คำถามติดแท็ก haskell

Haskell เป็นภาษาโปรแกรมที่ใช้งานได้มีการพิมพ์แบบสแตติกการประเมินแบบสันหลังยาวการขนานอย่างกว้างขวางและการสนับสนุนการทำงานพร้อมกัน

5
ตัวอย่างที่ดีของ Not a Functor / Functor / Applicative / Monad?
ในขณะที่อธิบายให้คนฟังว่า class X ชนิดใดที่ฉันพยายามหาตัวอย่างที่ดีของโครงสร้างข้อมูลซึ่งเป็น X อย่างแน่นอน ดังนั้นฉันขอตัวอย่างสำหรับ: คอนสตรัคเตอร์ชนิดที่ไม่ใช่ Functor ตัวสร้างประเภทซึ่งเป็น Functor แต่ไม่สามารถใช้ คอนสตรัคเตอร์ชนิดซึ่งเป็นการใช้งาน แต่ไม่ใช่ Monad ตัวสร้างประเภทซึ่งเป็น Monad ฉันคิดว่ามีตัวอย่างมากมายของ Monad ทุกที่ แต่ตัวอย่างที่ดีของ Monad ที่เกี่ยวข้องกับตัวอย่างก่อนหน้านี้อาจทำให้ภาพสมบูรณ์ ฉันมองหาตัวอย่างที่จะคล้ายกันแตกต่างกันเฉพาะในแง่มุมที่สำคัญสำหรับการเป็นของประเภทประเภทเฉพาะ หากมีใครสามารถจัดการตัวอย่างของ Arrow ที่อยู่ในลำดับชั้นนี้ได้ (มันอยู่ระหว่าง Applicative และ Monad หรือไม่) นั่นก็ยอดเยี่ยมเช่นกัน!

5
มีชื่อที่ออกเสียงได้สำหรับตัวดำเนินการ Haskell ทั่วไปหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังอ่านLearn You a Haskell เพื่อสิ่งที่ดีมากและฉันไม่เคยรู้วิธีออกเสียงผู้ใช้ Haskell พวกเขามีชื่อ "ของจริง" หรือไม่? ? ตัวอย่างเช่นคุณอ่านออกเสียงนิพจน์เช่นนี้ได้อย่างไร Just (+3) <*> Just 9 ฉันรู้ว่านั่น>>=คือ "ผูก" แต่แล้วคนอื่นล่ะ? เนื่องจาก Google ไม่คำนึงถึงตัวอักษรที่ไม่ใช่ตัวอักษรและตัวเลขจึงเป็นเรื่องยากที่จะทำการค้นหาที่มีประสิทธิภาพ ... ฉันรู้ว่าคุณสามารถสร้างโอเปอเรเตอร์ของคุณเองได้ดังนั้นแน่นอนว่าโอเปอร์เรเตอร์อาจไม่มีชื่อทั้งหมด แต่ฉันคาดหวังว่าคนทั่วไป (เช่นที่กำหนดไว้ในApplicativeหรือMonad) ต้องมีชื่อ ...
204 haskell  operators 


4
กำลังอ่าน GHC Core
หลักคือภาษากลางของ GHC Reading Core สามารถช่วยให้คุณเข้าใจประสิทธิภาพของโปรแกรมได้ดีขึ้น มีคนถามหาเอกสารหรือแบบฝึกหัดเกี่ยวกับการอ่าน Core แต่ฉันไม่สามารถหาได้มากนัก มีเอกสารอะไรบ้างสำหรับการอ่าน GHC Core นี่คือสิ่งที่ฉันพบ: เขียน Haskell เร็วเท่ากับ C: ใช้ประโยชน์จากความเข้มงวดความเกียจคร้านและการเรียกซ้ำ Haskell เร็วเท่ากับ C: ทำงานที่ระดับความสูงสูงเพื่อประสิทธิภาพระดับต่ำ RWH: บทที่ 25 การทำโปรไฟล์และการเพิ่มประสิทธิภาพ Haskell ประสิทธิภาพสูงคุยกันที่ CUFP (สไลด์ 65-80)


3
GHC คาดว่าจะสามารถเพิ่มประสิทธิภาพการทำงานได้อย่างน่าเชื่อถือ?
GHC มีการปรับแต่งมากมายที่สามารถทำงานได้ แต่ฉันไม่รู้ว่าพวกเขาทั้งหมดคืออะไรและมีแนวโน้มว่าจะต้องดำเนินการอย่างไรและอยู่ภายใต้สถานการณ์ใด คำถามของฉันคืออะไรฉันสามารถคาดหวังการเปลี่ยนแปลงอะไรที่จะนำไปใช้ทุกครั้งหรือเกือบจะเป็นเช่นนั้น? ถ้าฉันดูรหัสที่จะถูกดำเนินการ (ประเมิน) บ่อยครั้งและความคิดแรกของฉันคือ "hmm บางทีฉันควรปรับให้เหมาะสม" ซึ่งในกรณีนี้ความคิดที่สองของฉันควรเป็น "ไม่ต้องคิดเลย GHC ได้รับสิ่งนี้ "? ฉันกำลังอ่านStream Stream Fusionของกระดาษ: จากรายการไปจนถึงสตรีมไปยังไม่มีอะไรเลยและเทคนิคที่พวกเขาใช้ในการเขียนรายการประมวลผลในรูปแบบอื่นซึ่งการปรับตามปกติของ GHC จะเพิ่มประสิทธิภาพลงในลูปแบบง่าย ๆ ฉันจะบอกได้อย่างไรว่าโปรแกรมของฉันมีสิทธิ์ได้รับการเพิ่มประสิทธิภาพแบบนั้น? มีข้อมูลบางอย่างในคู่มือ GHC แต่มีเพียงบางส่วนที่จะตอบคำถาม แก้ไข: ฉันเริ่มได้รับรางวัล สิ่งที่ฉันต้องการคือรายการของการแปลงระดับล่างเช่นแลมบ์ดา / เคส / กรณีลอย, พิเศษ / ประเภทคอนสตรัค / ฟังก์ชั่นการโต้แย้งการวิเคราะห์ความเข้มงวดและ unboxing, คนงาน / ห่อหุ้มและสิ่งอื่น ๆ ที่สำคัญ GHC พร้อมด้วยคำอธิบายและตัวอย่างของอินพุตและเอาต์พุตโค้ดและภาพประกอบที่สมบูรณ์แบบของสถานการณ์เมื่อเอฟเฟกต์ทั้งหมดมากกว่าผลรวมของส่วนต่างๆ และเป็นที่กล่าวถึงเมื่อการเปลี่ยนแปลงไม่ได้ผลเกิดขึ้น ฉันไม่ได้คาดหวังว่าคำอธิบายที่มีความยาวนวนิยายของการเปลี่ยนแปลงทุกอย่างสองสามประโยคและตัวอย่างโค้ดอินไลน์ซับหนึ่งอาจเพียงพอ ชัดเจนในตอนท้ายของมัน ฉันต้องการที่จะดูรหัสและสามารถคาดเดาได้ดีว่ามันจะรวบรวมเป็นวงแคบหรือไม่หรือทำไมไม่หรือสิ่งที่ฉันจะต้องเปลี่ยนเพื่อให้ได้ (ฉันไม่สนใจมากที่นี่ในกรอบการเพิ่มประสิทธิภาพขนาดใหญ่เช่นการหลอมกระแส …

1
เลนส์, fclabels, data-accessor - ไลบรารี่ใดสำหรับการเข้าถึงโครงสร้างและการกลายพันธุ์จะดีกว่า
มีไลบรารียอดนิยมอย่างน้อยสามแห่งสำหรับการเข้าถึงและจัดการฟิลด์ของระเบียน สิ่งที่ฉันรู้คือ: data-accessor, fclabels และเลนส์ โดยส่วนตัวแล้วฉันเริ่มด้วย data-accessor และตอนนี้ฉันก็ใช้มันอยู่ อย่างไรก็ตามเมื่อเร็ว ๆ นี้ใน haskell-cafe มีความเห็นของ fclabels เป็นที่เหนือกว่า ดังนั้นฉันสนใจที่จะเปรียบเทียบห้องสมุดทั้งสาม (และอาจมากกว่า)

8
เหตุใดผลข้างเคียงที่จำลองเป็นพระใน Haskell
ใครบ้างให้คำแนะนำว่าทำไมการคำนวณที่ไม่บริสุทธิ์ใน Haskell ถูกจำลองเป็นพระ? ฉันหมายถึง monad เป็นเพียงส่วนต่อประสานที่มี 4 การดำเนินการดังนั้นอะไรคือเหตุผลที่ทำให้เกิดผลข้างเคียงในการสร้างแบบจำลอง?


13
วิธีการแยกสตริงใน Haskell หรือไม่?
มีวิธีมาตรฐานในการแบ่งสตริงใน Haskell หรือไม่? linesและwordsที่ดีทำงานจากที่แยกในพื้นที่หรือขึ้นบรรทัดใหม่ แต่ก็มีวิธีมาตรฐานในการแยกจุลภาคหรือไม่? ฉันหามันไม่พบใน Hoogle จะเฉพาะเจาะจง, ฉันกำลังมองหาบางสิ่งบางอย่างที่ผลตอบแทนsplit "," "my,comma,separated,list"["my","comma","separated","list"]
163 string  haskell 

4
ทำไมไม่พิมพ์อย่างพึ่งพา?
ฉันได้เห็นแหล่งข้อมูลหลายแห่งสะท้อนความคิดเห็นที่ว่า "Haskell ค่อยๆกลายเป็นภาษาที่ต้องพึ่งพา" ความหมายดูเหมือนว่าจะมีส่วนขยายภาษาเพิ่มมากขึ้น Haskell ลอยไปในทิศทางทั่วไปนั้น แต่ยังไม่มี โดยทั่วไปมีสองสิ่งที่ฉันอยากรู้ อย่างแรกคือการที่ค่อนข้างง่าย "การเป็นภาษาที่ต้องพึ่งพา" หมายถึงอะไร ? (หวังว่าจะไม่มีความรู้ด้านเทคนิคมากเกินไป) คำถามที่สองคือ ... ข้อเสียคืออะไร ฉันหมายความว่าผู้คนรู้ว่าเรากำลังมุ่งหน้าไปทางนั้นจึงต้องมีข้อได้เปรียบ แต่ถึงกระนั้นเรายังไม่ได้อยู่ที่นั่นดังนั้นจะต้องมีข้อเสียบางอย่างที่ทำให้ผู้คนหยุดไปตลอดทาง ฉันได้รับความประทับใจว่าปัญหาคือความซับซ้อนที่เพิ่มมากขึ้น แต่ไม่เข้าใจจริงๆเลยว่าการพิมพ์แบบพึ่งพาอะไรฉันไม่รู้แน่ชัด สิ่งที่ฉันทำรู้คือทุกครั้งที่ผมเริ่มต้นการอ่านเกี่ยวกับการเขียนโปรแกรมภาษา dependently พิมพ์ข้อความคือไม่สามารถเข้าใจได้อย่างเต็มที่ ... สันนิษฐานว่าเป็นปัญหา (?)

1
สถานะของการเขียนโปรแกรมแบบมัลติคอร์ใน Haskell คืออะไร?
สถานะของการเขียนโปรแกรมแบบมัลติคอร์ใน Haskell คืออะไร? โครงการเครื่องมือและห้องสมุดใดบ้างที่มีให้ในตอนนี้ มีรายงานประสบการณ์อะไรบ้าง?

7
วิธีการกำหนดฟังก์ชั่นใน ghci ข้ามหลายบรรทัด?
ฉันพยายามกำหนดฟังก์ชั่นง่าย ๆ ที่ครอบคลุมหลายบรรทัดใน ghci ใช้ตัวอย่างต่อไปนี้: let abs n | n >= 0 = n | otherwise = -n จนถึงตอนนี้ฉันได้ลองกด Enter หลังจากบรรทัดแรก: Prelude> let abs n | n >= 0 = n Prelude> | otherwise = -n <interactive>:1:0: parse error on input `|' ฉันพยายามใช้:{และ:}คำสั่งด้วย แต่ฉันก็ไม่ได้ไปไกล: Prelude> :{ unknown command ':{' use …
161 haskell  ghci 

3
อะไรคือความแตกต่างระหว่างลักษณะใน Rust และ typeclasses ใน Haskell
ลักษณะใน Rust ดูเหมือนอย่างน้อยที่สุดก็คล้ายกับtypeclassesใน Haskell แต่ฉันเคยเห็นคนเขียนว่ามีความแตกต่างระหว่างพวกเขา ฉันสงสัยว่าความแตกต่างเหล่านี้คืออะไร
157 haskell  rust  traits 

2
แอปพลิเคชันในโลกแห่งความจริงของ zygohistomorphic prepromorphisms
ใช่สิ่งเหล่านี้ : {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro (distZygoT …

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