reading file byLine
Namal via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Sep 5 13:22:04 PDT 2015
On Saturday, 5 September 2015 at 18:57:52 UTC, deed wrote:
> On Saturday, 5 September 2015 at 17:31:39 UTC, Namal wrote:
>> Yeah, I have have been trying this example from wiki books
>>
>> https://en.wikibooks.org/wiki/Learning_D_With_Project_Euler
>>
>> It is not even compiling.
>
> What exactly is not compiling?
the last codesample on the bottom. I think because of the old D?
Index for the last array.length-1 is now $-1. But also I get
Error: undefined identifier 'file'
for the read line. But even when I fixed those errors the strings
I got were with those quotation marks and backslashes. However,
with your help I could solve it now.
I moved to the next problem and wrote the program for it
import std.stdio, std.algorithm, std.array;
bool abundant(int n){
int[] a;
foreach(i;1..n)
if(!(n%i))
a~=i;
auto sum = reduce!((a,b)=>a+b)(0,a);
return sum>n;
}
void main(){
long sum;
int[] arr;
int[28123] mark;
foreach(i;1..28124)
if(abundant(i))
arr~=i;
foreach(i;arr)
foreach(j;arr){
if(i+j>28123)
break;
mark[i+j-1] = 1;
}
for(auto i = 0;i<mark.length;++i)
if(!mark[i])
sum+=i+1;
writeln(sum);
}
How can I generate the array arr the functional way with reduce
and the function abundant as filter. Tried it on my own but
failed. Also, if I use reduce on an array, like I did for the
sum, what does the zero mean in the range?
More information about the Digitalmars-d-learn
mailing list