User loginNavigation 
expressivity of "idiomatic C++"The April issue of C/C++ Users Journal has an article called A New Solution To an Old Problem by Andrew Koenig and Barbara E. Moo. In it, they revisit the Hamming numbers problem from Dijkstra's A Discipline of Programming. They examine four different solutions:
The Haskell solution is the following scale n (x:xs) = (n * x) : (scale n xs) merge xs [] = xs merge [] ys = ys merge (x:xs) (y:ys) = if x == y then x : (merge xs ys) else if x < y then x : (merge xs (y:ys)) else y : (merge (x:xs) ys) seq = 1 : (merge (scale 2 seq) (merge (scale 3 seq) (scale 5 seq))) Their "idiomatic C++" solution uses ordered sets: set<int> seq; seq.insert(1); set<int>::const_iterator it = seq.begin(); int val = *it; seq.insert(val * 2); seq.insert(val * 3); seq.insert(val * 5); it++; In conclusion, they have this to say (emphasis mine),
I may be reading too much into this quote, but it sounds to me like Koenig and Moo consider it a bad thing to require a "totally different way of thinking about programming". P.S. While googling for Hamming numbers, I came across this related paper: Expressivity of FunctionalLogic Languages and Their Implementation by Juan José Moreno Navarro. By elvadimo at 20050329 15:22  LtU Forum  previous forum topic  next forum topic  other blogs  45809 reads

Browse archivesActive forum topics 
Recent comments
1 hour 7 min ago
1 hour 18 min ago
1 hour 32 min ago
4 hours 16 min ago
14 hours 53 min ago
16 hours 17 min ago
18 hours 19 min ago
22 hours 34 min ago
22 hours 42 min ago
22 hours 44 min ago