Thanks for the explanation! On Tue, Nov 22, 2016 at 5:29 PM, Marcus Müller <marcus.muel...@ettus.com> wrote:
> That's a long story. Essentially, a list is a pair of the first element > and a pair of a second element and a pair of the third element and a pair > of … > > Cheers, > Marcus > > On 22.11.2016 23:18, Dave NotTelling wrote: > > I ask because it feels like a bug. Things like ((a . b), (c . d), (e . > f)) are definitely not pairs (assuming a pair is 2 elements) and (in my > opinion) should not return true for pmt.is_pair(). > > On Tue, Nov 22, 2016 at 5:12 PM, Dave NotTelling <dmp250...@gmail.com> > wrote: > >> Martin, >> >> Was that done on purpose? >> >> Thank you for the link! I hadn't thought about checking that way. >> >> Thanks! >> >> -Dave >> >> On Tue, Nov 22, 2016 at 5:08 PM, Martin Braun <martin.br...@ettus.com> >> wrote: >> >>> Dave, >>> >>> pairs pass is_dict(), which is possibly the root cause here. See also: >>> https://github.com/gnuradio/gnuradio/blob/31b28f0cf4694378b2 >>> 6617616d08b4082668962f/gr-uhd/lib/usrp_block_impl.cc#L487-L494 >>> >>> Cheers, >>> M >>> >>> On 11/22/2016 01:47 PM, Dave NotTelling wrote: >>> > I noticed today that the is_dict and is_pair checks are not appearing >>> to >>> > work properly. Here is an example that shows the issue: >>> > >>> > [code] >>> > >>> > #!/usr/bin/python >>> > >>> > import pmt >>> > >>> > def print_pmt(dictVar): >>> > print 'isPair:%05s, isDict:%05s, isTuple:%05s => %s' % >>> > (pmt.is_pair(dictVar), pmt.is_dict(dictVar), pmt.is_tuple(dictVar), >>> dictVar) >>> > >>> > print 'DICT' >>> > >>> > d = pmt.make_dict() >>> > print_pmt(d) >>> > >>> > d = pmt.dict_add(d, pmt.intern('a'), pmt.intern('b')) >>> > print_pmt(d) >>> > >>> > d = pmt.dict_add(d, pmt.intern('c'), pmt.intern('d')) >>> > print_pmt(d) >>> > >>> > d = pmt.dict_add(d, pmt.intern('e'), pmt.intern('f')) >>> > print_pmt(d) >>> > >>> > print '\nCONS' >>> > >>> > p = pmt.cons(pmt.make_dict(), pmt.make_u8vector(0,0)) >>> > print_pmt(p) >>> > >>> > [/code] >>> > >>> > Run that and you'll see what I consider strange behavior. The values >>> of >>> > is_pair and is_dict to not match what is expected. Is that by design? >>> > If so, why? >>> > >>> > ((a . b)) is not a pair... It's a single element dictionary >>> > ((c . d) (a . b)) i can sorta see this being a pair, but it wasn't >>> > created that way >>> > ((e . f) (c . d) (a . b)) definitely not a pair as it's 3 elements >>> > >>> > (() . #[]) don't dictionaries have to be nested? >>> > >>> > >>> > Thanks! >>> > >>> > >>> > _______________________________________________ >>> > Discuss-gnuradio mailing list >>> > Discuss-gnuradio@gnu.org >>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> > >>> >>> >>> _______________________________________________ >>> Discuss-gnuradio mailing list >>> Discuss-gnuradio@gnu.org >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >> >> > > > _______________________________________________ > Discuss-gnuradio mailing > listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio