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

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 

5
คำสั่งหลายบรรทัดใน GHCi
ฉันมีปัญหาในการป้อนคำสั่งหลายบรรทัดใน ghci โค้ด 2 บรรทัดต่อไปนี้ทำงานจากไฟล์: addTwo :: Int -> Int -> Int addTwo x y = x + y แต่เมื่อฉันป้อน ghci ฉันได้รับข้อผิดพลาด: <interactive>:1:1: error: Variable not in scope: addTwo :: Int -> Int -> Int ฉันลองใส่รหัสเข้าไปข้างใน:{ ... :}ด้วย แต่ก็ใช้ไม่ได้กับตัวอย่างนี้เช่นกันเพราะนี่เป็นเพียงการต่อท้ายบรรทัดให้เป็นบรรทัดเดียวซึ่งไม่ควรเป็นเช่นนั้น ฉันใช้ WinGHCi เวอร์ชัน 2011.2.0.1
139 haskell  ghci 

1
Emacs Interactive-Haskell จะแทนที่การไม่ตอบสนองหากไดเร็กทอรี cabal หรือการทำงานตั้งค่าเป็นไดเร็กทอรีโครงการ
ฉันทำงานเป็นพฤติกรรมแปลก ๆ กับ repl อินเตอร์แอคที-Haskell emacsใน เมื่อฉันซอร์สไฟล์emacsมินิบัฟเฟอร์จะแสดงชุดข้อความโต้ตอบแบบโต้ตอบ: Start a new project named 'myproject'? Cabal dir (guessed from myproject.cabal): Build target (empty for default): Set current directory: ถ้าฉันปล่อยไดเร็กทอรี cabal หรือไดเร็กทอรีปัจจุบันเป็นค่าดีฟอลต์ของไดเร็กทอรีโปรเจ็กต์การจำลองจะไม่ตอบสนอง ฉันได้รับแลมบ์ดาพรอมต์ในหน้าต่าง Haskell แบบโต้ตอบฉันสามารถพิมพ์ได้ แต่เมื่อฉันกด Enter มันจะไม่ประเมิน เคอร์เซอร์จะอยู่ในบรรทัดเดียวกันราวกับว่าฉันไม่ได้กด Enter เลย ถ้าฉันเปลี่ยนทั้งสองไดเร็กทอรีเหล่านั้นเป็นพา ธ อื่นนอกเหนือจากไดเร็กทอรีโปรเจ็กต์ของฉันการจำลองจะทำงานตามปกติและประเมินนิพจน์ตามที่คาดไว้
124 haskell  emacs  cabal  ghci 



3
ทำไม ghci desugar จึงพิมพ์รายการและพิมพ์ครอบครัว สามารถเลือกปิดใช้งานได้หรือไม่?
ฉันกำลังพยายามทำให้ประเภท ghci แสดงสำหรับไลบรารีของฉันให้ใช้งานง่ายที่สุด แต่ฉันพบปัญหามากมายเมื่อใช้คุณสมบัติประเภทขั้นสูงเพิ่มเติม สมมติว่าฉันมีรหัสนี้ในไฟล์: {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} import GHC.TypeLits data Container (xs::[*]) = Container ฉันโหลดเป็น ghci จากนั้นพิมพ์คำสั่งต่อไปนี้: ghci> :t undefined :: Container '[String,String,String,String,String] น่าเสียดายที่ ghci ทำให้ฉันดูค่อนข้างน่าเกลียด: :: Container ((':) * String ((':) * String ((':) * String ((':) * String …
93 haskell  types  ghci 

1
พฤติกรรมแปลก ๆ ของ (^) ใน Haskell
ทำไม GHCi ให้คำตอบที่ไม่ถูกต้องด้านล่าง GHCi λ> ((-20.24373193905347)^12)^2 - ((-20.24373193905347)^24) 4.503599627370496e15 Python3 >>> ((-20.24373193905347)**12)**2 - ((-20.24373193905347)**24) 0.0 อัพเดท ฉันจะใช้ฟังก์ชั่นของ Haskell (^) ดังนี้ powerXY :: Double -> Int -> Double powerXY x 0 = 1 powerXY x y | y < 0 = powerXY (1/x) (-y) | otherwise = let z = powerXY …

1
Haskells Weak Head ฟอร์มปกติ
ฉันสะดุดสิ่งที่น่ารำคาญบางอย่าง ฉันรู้ว่า Haskell ทำงานได้กับรูปแบบปกติของผู้อ่อนแอ (WHNF) และฉันรู้ว่านี่คืออะไร พิมพ์รหัสต่อไปนี้เป็น ghci (ฉันใช้คำสั่ง: sprint ซึ่งลดการแสดงออกของ WHNF ให้เป็นความรู้ของฉัน): let intlist = [[1,2],[2,3]] :sprint intlist ให้intlist = _ความรู้สึกแบบนี้กับฉันโดยสิ้นเชิง let stringlist = ["hi","there"] :sprint stringlist ให้stringlist = [_,_] สิ่งนี้ทำให้ฉันสับสนแล้ว แต่แล้ว: let charlist = [['h','i'], ['t','h','e','r','e']] :sprint charlist ให้อย่างแปลกใจ charlist = ["hi","there"] เท่าที่ผมเข้าใจ Haskell สตริงมีอะไรอย่างอื่นมากกว่ารายชื่อของตัวอักษรซึ่งดูเหมือนว่าจะได้รับการยืนยันโดยการตรวจสอบชนิดและ"hi" :: [Char]['h','i'] :: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.