【发布时间】:2022-07-31 17:57:20
【问题描述】:
这是我在函数式编程中遇到的问题。
假设我有一个列表[2, 1, 3]。
我可以旋转它以获得[1, 3, 2]。
再次旋转得到[3, 2, 1]。
我现在有了获得编码列表的编码功能。
假设它被称为Encoded [2, 1, 3]。
旋转后,获取Encoded [1, 3, 2]。
我现在有解码功能。
当它收到Encoded[2, 1, 3]。
它可以返回[2, 1, 3]。
当它收到Encoded [1, 3, 2]。
它仍然可以返回[2, 1, 3]。
简单来说:
`decoded(encoded list) = list`
`decoded(rotate(encoded list)) = list`
还有一个条件是这个列表的数组的范围是0..255,除此之外,不接受任何值。
我的想法是,当我生成编码列表时,我应该做一些工作以使解码函数返回原始列表,无论列表发生什么
任何帮助对我来说都很重要,非常感谢。
【问题讨论】:
标签: python java list haskell functional-programming