我在使用多種模式的Frege中定義函數時遇到了一些問題。基本上,我通過迭代元組列表來定義映射。我已經簡化它歸結爲以下幾點: 我得到以下錯誤: E morse.fr:3: redefinition of `foo` introduced line 2
我見過的做一個函數定義使用多模式的其它例子像this,所以我不知道我做錯了什麼。爲什麼我在這裏得到一個錯誤?我是新來的弗雷格(對哈斯克爾來說
在Haskell,我要開始ghci與-XNPlusKPatterns或在源文件中添加{-# LANGUAGE NPlusKPatterns #-},使這項工作: pred :: Int -> Int
pred 0 = 0
pred (n + 1) = n
是n+k模式故意越過弗雷格或存在的方式來啓用它?
我嘗試在第8章中運行關於Graham Hutton的「Programming in Haskell」中的函數解析器的片段,這兩個片段都在ghci和frege-repl中。 我無法使用do語法對語法分析器進行排序。 我有以下弗雷格(Haskell的版本,不同之處僅簡單item定義中不打包和解包String和Char,是一樣的,在書)定義: module Parser where
type Pars
我試圖做一個仿函數實例下列數據類型: data Event t a = Event { runEvent :: t -> ([a], Event t a) }
instance Functor (Event t) where
fmap :: (a -> b) -> Event t a -> Event t b
fmap f e = Event go
where
正如標題所示,出於某種原因,調試函數時,傳遞給trace(以及其變體)函數的消息不能正確顯示。簡單地刷新stdout/stderr似乎也沒有做任何事情。 -- Makes it more like Haskell's trace
debug :: String -> α -> α
debug msg f = const f $ trace msg
-- dummy function
po