在循环记录中打结

时间:2018-08-08 13:44:08

标签: haskell cyclic-dependency

重写以下内容以便编译的最佳方法是什么?两种数据类型都相互依赖。

{-# LANGUAGE OverloadedStrings, DuplicateRecordFields #-}   
data Syn = S { inputs :: [Neu] }
data Neu = N { weigth :: Double, inputs :: [ Syn ] }

1 个答案:

答案 0 :(得分:2)

您的代码可以正常编译(我随意给它提供模块名称),没有错误:

% ghc -c so.hs
% cat so.hs
{-# LANGUAGE OverloadedStrings, DuplicateRecordFields #-}
module So where

data Syn = S { inputs :: [Neu] }
data Neu = N { weigth :: Double, inputs :: [ Syn ] }

% ls -l so.o
-rw-r--r--  1 tommd  wheel  4888 Aug  8 14:02 so.o

如果遇到错误,请确保发布实际代码,用于编译或解释的命令,编译器的版本以及错误消息本身。