小编Alp*_*aft的帖子

Haskell 中奇怪的变量绑定

我在 Haskell 中有以下代码,它是 Brainfuck 解释器的一部分(当我学习一门新语言时,我最喜欢的第一个中型项目):


type Program = String
type Pointer = Int
type Stack = [Int]

data ExecutionState = ExecutionState {
  programPointer :: Pointer,
  program :: Program,
  stackPointer :: Pointer,
  stack :: Stack
} deriving (Eq, Show)

moveBackwards :: ExecutionState -> ExecutionState
moveBackwards (ExecutionState pp p sp s) = ExecutionState (pp-1) p sp s

curr :: ExecutionState -> Char
curr execState = (stack execState) !! (stackPointer execState)

currByte :: ExecutionState -> Int
currByte execState = (program execState) !! (programPointer …
Run Code Online (Sandbox Code Playgroud)

haskell

1
推荐指数
1
解决办法
185
查看次数

标签 统计

haskell ×1