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

Browse archives
Active forum topics 
Recent comments
4 hours 34 min ago
7 hours 51 min ago
15 hours 25 min ago
17 hours 37 min ago
18 hours 17 min ago
18 hours 24 min ago
20 hours 34 min ago
21 hours 54 min ago
23 hours 20 min ago
23 hours 24 min ago