나는 최근 자바 스크립트에서 실제로 Conway의 게임 게임을 실제로 구현 했습니다 (실제로 커피 스크립트이지만 동일한 것). 자바 스크립트를 기능적 언어로 사용할 수 있기 때문에 스펙트럼의 끝까지 머물려고했습니다. 나는 내 결과에 만족하지 않았다. 나는 상당히 좋은 OO 프로그래머이고 내 솔루션은 똑같은 늙었다. 그래서 긴 질문은 짧습니다 : (의사 코드) 기능적 스타일은 무엇입니까?
내 시도에 대한 의사 코드는 다음과 같습니다.
class Node
update: (board) ->
get number_of_alive_neighbors from board
get this_is_alive from board
if this_is_alive and number_of_alive_neighbors < 2 then die
if this_is_alive and number_of_alive_neighbors > 3 then die
if not this_is_alive and number_of_alive_neighbors == 3 then alive
class NodeLocations
at: (x, y) -> return node value at x,y
of: (node) -> return x,y of node
class Board
getNeighbors: (node) ->
use node_locations to check 8 neighbors
around node and return count
nodes = for 1..100 new Node
state = new NodeState(nodes)
locations = new NodeLocations(nodes)
board = new Board(locations, state)
executeRound:
state = clone state
accumulated_changes = for n in nodes n.update(board)
apply accumulated_changes to state
board = new Board(locations, state)