Я смущен различиями между haskell и python клиентами для msgpack. Это:msgpack: haskell & python
import Data.MessagePack as MP
import Data.ByteString.Lazy as BL
BL.writeFile "test_haskell" $ MP.pack (0, 2, 28,())
и это:
import msgpack
with open("test_python", "w") as f:
f.write(msgpack.packb([0, 2, 28, []]))
дают мне различные файлы:
$ diff test_haskell test_python
Binary files test_haskell and test_python differ
Может кто-нибудь объяснить, что я делаю неправильно? Может, я неправильно понял что-то около ByteString
?
ли msgpack заботиться о списках против кортежей? В haskell вы используете кортеж (последний элемент которого является единицей aka '()'), а в python вы используете список (последний элемент которого - '[]', пустой список). Попробуйте [используя кортежи python] (http://www.tutorialspoint.com/python/python_tuples.htm). – rampion
@rampion Результат python '' packb'' с кортежами такой же, как и для списков. – erthalion