On Sun, 10 Aug 2014 21:29:12 -0700, Rustom Mody wrote: > On Monday, August 11, 2014 8:30:32 AM UTC+5:30, Steven D'Aprano wrote: > >> You did the same thing in your own course, the only difference being >> you accepted a different set of primitive functions. But ultimately you >> have to introduce *some* amount of concreteness, at some level, >> otherwise we're just engaged in mental masturbation: > >> Q: "Write a function to calculate the nth Catalan number." A: "Assume >> that a function Catalan(n) exists and calculates the nth Catalan >> number. Then the solution is Catalan." > > > You're concocting your own definitions and critiquing/refuting them.
No, but I think you are deliberately choosing to ignore my point for the sake of cheap shots. My point is that, at *some* level, you have to actually write code (well duh!) which must be targeted at some concrete environment. Different languages provide different levels of abstraction, but they all have a some concrete set of primitive operations which actually do *something*, and that something is concrete, not abstract. Every function, even in Haskell, has an implementation. Otherwise if you don't need an implementation, you can just declare "imagine a function that implements Foo" for any Foo, and you're done.[1] Computer science, if might be said, is the search for better and more productive abstractions which provide more useful implementations for concrete tasks. [1] A perfectly reasonable approach, sometimes, for some philosophical questions, including sometimes philosophical questions within the scope of computer science. E.g. if we had a supertask, or an oracle-machine, what class of problems could we solve? -- Steven -- https://mail.python.org/mailman/listinfo/python-list