F #: Печать полных списков без явного цикла - PullRequest
3 голосов
/ 02 мая 2011

Можно ли напечатать структуру данных в F# без сокращения длинных списков?

С помощью printf мне кажется, что я могу печатать только первые 100 элементов:

\> let l = [1 .. 200];;

val l : int list =
  [1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21;
   22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; 39; 40;
   41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; 57; 58; 59;
   60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78;
   79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97;
   98; 99; 100; ...]

\> printf "%A\n" l;;   
[1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22;
 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; 39; 40; 41; 42;
 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62;
 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82;
 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99; 100; ...]

val it : unit = ()

В этомВ случае, если можно было бы пройти по элементам в цикле, однако, в более сложной структуре данных было бы необходимо разложить структуру, чтобы обеспечить доступ к спискам.

Например, можно ли напечатать следующееструктура целиком, не разбивая ее на отдельные списки:

\> let l = ([1 ..200], [1..200]);;

?

1 Ответ

4 голосов
/ 02 мая 2011

Вы можете использовать свойство PrintLength объекта fsi, чтобы указать максимальную длину для печати списков.Он не позволяет вам указывать бесконечность напрямую, но вы можете использовать:

fsi.PrintLength <- System.Int32.MaxValue

Есть несколько похожих свойств, но они не очень хорошо документированы (см. MSDN-страницу ), так что вам, вероятно, придется немного поэкспериментировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...