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  48239 reads

Browse archivesActive forum topics 
Recent comments
2 hours 5 min ago
3 hours 15 min ago
3 hours 55 min ago
8 hours 25 min ago
8 hours 44 min ago
8 hours 47 min ago
11 hours 37 min ago
12 hours 40 min ago
12 hours 40 min ago
15 hours 34 min ago