gpt4 book ai didi

Haskell变量不在范围内

转载 作者:行者123 更新时间:2023-12-04 14:10:26 26 4
gpt4 key购买 nike

我正在配置我的 xmonad 文件以根据 https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Hooks-DynamicLog.html#v:ppOutput 上的文档将 Stdout 发送到 SpawnPipe

这是我到目前为止的代码...我确定我只是缺少一种将 h 传递给 myLogHook 函数的方法! - 感谢您的帮助。

myLogHook = dynamicLogWithPP $ def { ppOutput = hPutStrLn h }

main = do
h <- spawnPipe "xmobar ~/.xmobar/.xmobarrc"
xmonad $ docks defaults

defaults = def {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
clickJustFocuses = myClickJustFocuses,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,

-- key bindings
keys = myKeys,
mouseBindings = myMouseBindings,

-- hooks, layouts
layoutHook = myLayout,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myLogHook,
startupHook = myStartupHook
}

最佳答案

首先,更改myLogHook,将句柄作为参数:

import System.IO
import XMonad

myLogHook :: Handle -> X ()
myLogHook h = dynamicLogWithPP $ def { ppOutput = hPutStrLn h }

然后,将它传递给钩子(Hook)并从默认值中删除它:

main = do
h <- spawnPipe "xmobar ~/.xmobar/.xmobarrc"
xmonad $ docks $ defaults {
logHook = myLogHook h
}

defaults = def {
-- some stuff
logHook = return ()
-- more stuff
}

默认值之后的 {} 基本上会覆盖属性。

关于Haskell变量不在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64934270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com