5
$\begingroup$

When thinking on this recent question the immediately obvious solution which came to my mind was to use ReadList with options RecordLists -> True and NullRecords -> True for reading objects of type Number. But I discovered that NullRecords -> True is ignored for Number although RecordLists -> True is respected:

ReadList[StringToStream["1 2 3\n4 5\n\n6 7\n8 9"], Number, RecordLists -> True, 
 NullRecords -> True]
{{1, 2, 3}, {4, 5}, {6, 7}, {8, 9}}

Currently the option NullRecords -> True is respected only for types Record and String:

ReadList[StringToStream["1 2 3\n4 5\n\n6 7\n8 9"], String, RecordLists -> True, 
 NullRecords -> True]
{{"1 2 3"}, {"4 5"}, {""}, {"6 7"}, {"8 9"}}
ReadList[StringToStream["1 2 3\n4 5\n\n6 7\n8 9"], Record, RecordLists -> True, 
 NullRecords -> True]
{{"1 2 3"}, {"4 5"}, {""}, {"6 7"}, {"8 9"}}

It is interesting that in version 5.2 this option was respected also for objects of type Word (but not for Number and Real):

$Version
ReadList[StringToStream["1 2 3\n4 5\n\n6 7\n8 9"], Word, RecordLists -> True,
  NullRecords -> True]
"5.2 for Microsoft Windows x86 (64 bit) (June 20, 2005)" 
{{"1", "2", "3"}, {"4", "5"}, {}, {"6", "7"}, {"8", "9"}} 

The ignorance of NullRecords -> True for Number makes no sense for me, especially considering that RecordLists -> True is respected. Is there any reason for this? Is it a bug?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.