Более простой способ создать таблицу истинности

Я хочу создать список списков в SML, который представляет собой таблицу истинности следующего вида:

Example:

[
    [("r",true),("p",true),("q",true)],
    [("r",false),("p",false),("q",true)],
    [("r",false),("p",true),("q",true)], 
    ...
]

Я думаю, что мог бы добиться этого двумя способами: (1) с декартовым произведением (2) преобразованием записи индекса таблицы истинности в двоичную, которая представляла бы закодированную строку в списке (например, 8 (десятичное) равно 1000 (двоичное) => [("r",true),("p",false),("q",false)]), но я думаю, что это слишком сложно и, вероятно, есть более простой способ.

Что было бы самым простым способом сделать это?


person TheAptKid    schedule 02.12.2013    source источник