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

Browse archivesActive forum topics 
Recent comments
17 hours 47 min ago
18 hours 28 min ago
19 hours 36 min ago
20 hours 39 min ago
1 day 5 hours ago
1 day 12 hours ago
1 day 12 hours ago
2 days 13 hours ago
2 days 20 hours ago
2 days 23 hours ago