我一直在努力让Flymake在emacs中使用Haskell模式.我已经让它在过去工作了,我不得不说Flymake和Haskell的类型系统的组合是非常协同的.现在看来我无法获得错误/警告突出显示并且一切正常.我试过ghc-mod,我也跟着一些wiki.请帮助,奖金,如果你可以使用cabal-dev.
GHC-7.4和GHC 7.0.Emacs 23.4.
我正在看 Emacs 的开发日志。但是,每当我打开此日志时,它都会以基本模式打开,并且缓冲区不会随日志内容一起滚动。应该注意的是,这是一个非常小的日志,仅收集有关我在编写源代码时所犯错误的信息。我在 Emacs 中看到这一点非常方便,因为日志响应我在编辑器中输入的命令。如何获得与日志一起滚动的缓冲区?
我大多是一个实用的人,但我发现这很有趣.
我一直在考虑monadic测序,我需要澄清一些事情.所以冒这个听起来很傻的风险是:
monadic成员绑定
bind :: m b -> (b -> m c) -> m c
可以对"动作"进行排序,使您可以显式访问中间值.
这对我来说如何比分类成员更多(.):
(.) :: cat b c -> cat a b -> cat a c
有了这个,我可以排序并访问中间值.毕竟(f . g) x = f(g (x)).
bind如果我能按顺序排序,为什么需要测序(.)?
我正在实现一个协议,该协议规定表示密码的字符串应序列化为固定长度的10字节字段.我正在使用Data.Cereal来执行此任务.这是我最近的一次:
padText :: Int -> Text -> Text
padText fieldLen = T.justifyLeft fieldLen '\NUL'
putPassword :: Putter Password
putPassword = put . TE.encodeUtf8 . padText 10
Run Code Online (Sandbox Code Playgroud)
在ByteStrings上加上一个额外的8字节块,在它编码的前面加上:
runPut $ putPassword "Friend"
Run Code Online (Sandbox Code Playgroud)
造成 :
"\NUL\NUL\NUL\NUL\NUL\NUL\NUL\nFriend\NUL\NUL\NUL\NUL"
Run Code Online (Sandbox Code Playgroud)
我不想要额外的块.为什么这样表现?
有谁知道如何序列化只有10个原始字节?
此代码来自一篇名为"Lazy v.Permal"的论文.它是一种解耦数据流的生产者和消费者的方法.我理解代码的Haskell部分,但O'Caml/F#让我不知所措.由于以下原因,我不理解此代码:
对于将参数作为参数作为异常并返回单位的函数,我可以期待什么样的行为?
消费者如何投射到特定的例外?(那是什么意思?)
什么是消费者的例子?
module SimpleGenerators
type 'a gen = unit -> 'a
type producer = unit gen
type consumer = exn -> unit (* consumer will project into specific exception *)
type 'a transducer = 'a gen -> 'a gen
let yield_handler : (exn -> unit) ref =
ref (fun _ -> failwith "yield handler is not set")
let iterate (gen : producer) (consumer : consumer) : unit =
let oldh = !yield_handler in
let rec …Run Code Online (Sandbox Code Playgroud) 这两个F#类型签名之间有什么区别(如果有的话)?
UseTheStream<'a when 'a :> Stream> : 'a -> unit
Run Code Online (Sandbox Code Playgroud)
和
UseTheStream : (stream : Stream) -> unit
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它们的意思是一样的吗?
msdn说出以下关于(:>)类型约束的内容
type-parameter :> type -- The provided type must be equal to or derived from the type specified, or, if the type is an interface, the provided type must implement the interface.
Run Code Online (Sandbox Code Playgroud)
这表明两个签名正在说同样的话.从功能上来说,它们有何不同?
inheritance f# functional-programming subtyping parametric-polymorphism