2017-05-20 7 views
0

Manjaro을 실행하고 XMonad 내가 다음 xmonad.hsparse error on input '{' 발생 일을하려고 노력은 :하스켈 중괄호 구문 분석 오류

import XMonad 
import XMonad.Hooks.DynamicLog 
import XMonad.Hooks.ManageDocks 
import XMonad.Util.Run(spawnPipe) 
import XMonad.Util.EZConfig(additionalKeys) 
import System.IO 

main = do 
    xmproc <- spawnPipe "xmobar" 

    xmonad $ defaultConfig 
    { manageHook = manageDocks <+> manageHook defaultConfig 
    , layoutHook = avoidStruts $ layoutHook defaultConfig 
    , logHook = dynamicLogWithPP xmobarPP 
      { ppOutput = hPutStrLn xmproc 
      , pptitle = xmobarColor "green" "" . shorten 50 
      } 
    , modMask = mod4Mask -- rebind Mod to the windows key 
    } `additionalKeys` 
    [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock; xset dmps force off") 
    , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") 
    , ((0, xK_Print), spawn "scrot") 
    ] 

나는이 solution on su.sx을 발견하고 readthedocs.io에서 내 xmonad.hs했다있다. 시작하려면 해당 구성 파일을 사용하고 싶습니다. 그러나이 솔루션을 적용하는 방법을 모르겠습니다. 실력이있는 사람이 왜 오류가 나타나고 그것을 해결할 수 있는지 설명 할 수 있다면, 최근에 하스켈에서 시작한 이래로 나는 정말로 감사 할 것입니다. : D

+1

글쎄, 어떻게 컴파일러가이 코드를 어떻게 파싱한다고 생각하니? (괄호 그리기) 힌트 : 연결 한 수퍼 유저의 솔루션에는 오류가 없습니다. – leftaroundabout

답변

2

모두 들여 쓰기 할 - 블록의 "부모"들여 쓰기 수준에서

main = do 
    xmproc <- spawnPipe "xmobar" 

    xmonad $ defaultConfig 
     { manageHook = manageDocks <+> manageHook defaultConfig 
     , layoutHook = avoidStruts $ layoutHook defaultConfig 
     , logHook = dynamicLogWithPP xmobarPP 
         { ppOutput = hPutStrLn xmproc 
         , ppTitle = xmobarColor "green" "" . shorten 50 
         } 
     , modMask = mod4Mask  -- Rebind Mod to the Windows key 
     } `additionalKeys` 
     [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock; xset dpms force off") 
     , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") 
     , ((0, xK_Print), spawn "scrot") 
     ] 

라인은 별도의 문으로 구문 분석, 인 : 오른쪽으로 더 xmonad $ defaultConfig 라인 (당신이 the example을 붙여 넣을 때 들여 쓰기의 일부가 손실 된 것) 여기서는 적합하지 않습니다.