我想创建以下声明:
data Color = B | W deriving Read
type Cell = (Color, Int) where 1 <= Int <= 255
Run Code Online (Sandbox Code Playgroud)
这个问题有什么解决办法吗?该类型实际上接受任何类型,Int但超出该范围的类型不应编译。
不完全是,但如果你有的话import Data.Word,就有这样的类型Word8。
这是一个“8位无符号整数类型”,因此它的值范围是0-255,而不是您希望的1-255。
如果这不适合您,那么他们的评论中提到的 Noughtmare 问题的答案中的技术是需要考虑的额外事项。