Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
November 10, 2015 why does this error out? | ||||
---|---|---|---|---|
| ||||
void main() { import std.stdio, std.algorithm, std.range, std.conv; enum digSum = (int n) => n.text.map!(d => d - '0').sum; // enum harshads = iota(1, int.max).filter!(n => n % digSum(n) == 0); enum harshads = iota(1, 256).filter!(n => n % digSum(n) == 0); harshads.take(20).writeln; harshads.filter!(h => h > 1000).front.writeln; } // this compiles but always prints 1 number and gets object.Error@(0): Access Violation |
November 10, 2015 Re: why does this error out? | ||||
---|---|---|---|---|
| ||||
Posted in reply to steven kladitis | Here's the output I get (DMD v2.068.2): [1, 3, 10, 12, 21, 30, 100, 102, 111, 120, 201, 210] core.exception.AssertError@std\range\package.d(4603): Assertion failure |
November 10, 2015 Re: why does this error out? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Cauterite | On Tuesday, 10 November 2015 at 04:34:22 UTC, Cauterite wrote:
> Here's the output I get (DMD v2.068.2):
>
> [1, 3, 10, 12, 21, 30, 100, 102, 111, 120, 201, 210]
> core.exception.AssertError@std\range\package.d(4603): Assertion failure
iota.front() is complaining the range is empty from this line.
harshads.filter!(h => h > 1000).front.writeln;
your hardas has no values > 1000 so the filter is empty. hardwas was seeded with iota(1,256), so the maximum value will be 252.
bye,
lobo
|
November 10, 2015 Re: why does this error out? | ||||
---|---|---|---|---|
| ||||
Posted in reply to lobo | On Tuesday, 10 November 2015 at 05:14:29 UTC, lobo wrote:
> On Tuesday, 10 November 2015 at 04:34:22 UTC, Cauterite wrote:
>> Here's the output I get (DMD v2.068.2):
>>
>> [1, 3, 10, 12, 21, 30, 100, 102, 111, 120, 201, 210]
>> core.exception.AssertError@std\range\package.d(4603): Assertion failure
>
> iota.front() is complaining the range is empty from this line.
>
> harshads.filter!(h => h > 1000).front.writeln;
>
> your hardas has no values > 1000 so the filter is empty. hardwas was seeded with iota(1,256), so the maximum value will be 252.
>
> bye,
> lobo
with dmd 2.069
I always get
--> [1
and then the error no matter what I canhe that line to.
|
November 12, 2015 Re: why does this error out? | ||||
---|---|---|---|---|
| ||||
Posted in reply to steven kladitis | On Tuesday, 10 November 2015 at 14:25:19 UTC, steven kladitis wrote: > On Tuesday, 10 November 2015 at 05:14:29 UTC, lobo wrote: >> On Tuesday, 10 November 2015 at 04:34:22 UTC, Cauterite wrote: >>> Here's the output I get (DMD v2.068.2): >>> >>> [1, 3, 10, 12, 21, 30, 100, 102, 111, 120, 201, 210] >>> core.exception.AssertError@std\range\package.d(4603): Assertion failure >> >> iota.front() is complaining the range is empty from this line. >> >> harshads.filter!(h => h > 1000).front.writeln; >> >> your hardas has no values > 1000 so the filter is empty. hardwas was seeded with iota(1,256), so the maximum value will be 252. >> >> bye, >> lobo > > > with dmd 2.069 > I always get > --> [1 > and then the error no matter what I canhe that line to. Hmm, that's different to what I get. On linux 64 bit with dmd 2.069 I get this: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24, 27, 30, 36, 40, 42] core.exception.AssertError@std/range/package.d(4691): Assertion failure Note the assertion is same as before; hardas has no values > 252 so filter!(h => h < 1000) results in an empty range. bye, lobo |
November 12, 2015 Re: why does this error out? | ||||
---|---|---|---|---|
| ||||
Posted in reply to lobo | On Thursday, 12 November 2015 at 02:36:23 UTC, lobo wrote:
> On Tuesday, 10 November 2015 at 14:25:19 UTC, steven kladitis wrote:
>> On Tuesday, 10 November 2015 at 05:14:29 UTC, lobo wrote:
>>> [...]
>>
>>
>> with dmd 2.069
>> I always get
>> --> [1
>> and then the error no matter what I canhe that line to.
>
> Hmm, that's different to what I get. On linux 64 bit with dmd 2.069 I get this:
>
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24, 27, 30, 36, 40, 42]
> core.exception.AssertError@std/range/package.d(4691): Assertion failure
>
>
> Note the assertion is same as before; hardas has no values > 252 so filter!(h => h < 1000) results in an empty range.
>
> bye,
> lobo
that should be filter!(h => h > 1000)
|
Copyright © 1999-2021 by the D Language Foundation