User loginNavigation |
LtU ForumPLT Scheme 4.0 releasedThe latest version of PLT Scheme, version 4.0, has just been released. It's got tons of new goodies, so I recommend that anyone interested in Scheme and/or functional programming check it out here. By Michael Vanier at 2008-06-12 08:40 | LtU Forum | login or register to post comments | other blogs | 5104 reads
On the importance of Turing completenessIn taking a graduate class in theoretical computer science, I developed a question that was never answered in a way that I felt comfortable with accepting, and now I can't stop thinking about it. We discussed that most computer languages are Turing complete, but did not discuss why that is necessary. When I asked, I got an answer of the type: because there are problems only solvable by Turing complete languages. Yet, I feel no examples coming immediately to mind. Pushdown-automata or stacks are always decidable, and there is an enormous amount of problems that can be solved using them. Also, very many practical problems can be solved in the form of a graph. Yet, many other problems can be solved with primitive recursion which is also decidable. So, I still feel like I am missing something; what are the practical benefits of making a language Turing complete? Or to ask another side of the question: what practical benefits would be lost by not being Turing complete? Any help on this one, I would tremendously appreciate. Functional Programming in the ACM CS CurriculumThe ACM Curriculum board has re-opened the 2001 design for review. Although ACM is a US-based organization, the curriculum is not only influential at the middle tier of US colleges and universities, but it is also taken seriously by many evolving and developing educational institutions overseas. In recent years, the study of non-OO PLs, and of other key PL topics such as type systems, has grown increasingly marginal in the undergraduate CS curriculum. In particular, the study of functional programming is not included in the ACM CS2001 core. We may now have an opening to make a small change in this situation. The ACM Curriculum board has agreed to consider a proposal on including FP as an equal to OOP (10 "hours" each) in the standard curriculum. This was the most concrete outcome of the PLC workshop at Harvard two weeks ago. The proposal was drafted by Stuart Reges, Shriram Krishnamurthi, and Matthias Felleisen and was endorsed unanimously by the workshop attendees and by the SIGPLAN Executive Committee. It proceeds on the premise that inclusion of FP in the core curriculum is the most important single thing that the PL community can do for CS education. In particular, this will help prepare students for a properly designed though possibly optional PL course or courses. Please consider contributing comments to the web site. A simple "Yes, I think this is a great idea" will be helpful. A short explanation is even better. There is now a long list of comments supporting this proposal. However, we have very few comments from people in industry, so comments from the many non-academics on LtU would be particularly helpful. Examples of how FP has helped you would, I think, be particularly persuasive. The web site is http://wiki.acm.org/cs2001/index.php?title=SIGPLAN_Proposal. Unfortunately, you must be an ACM member to view or submit comments.
using foldr to do mapI am reading Hutton's book, programming in Haskell, and got stumped by a question. redefine map f using foldr. Since foldr is described as replacing (:) in a list with some provided operator it seemed it shouldn't be too hard. So I tried this: > folmap :: (a -> b) -> [a] -> [b] My reasoning is that you apply the : operator after f on every value in the list. (Though I may not understand the (.) I was thinking that if f = (a ->b) and g = (b -> c) then g.f would be g performed after f (or g.f is f followed by g). Any advice?? What kind of a category is the blue calculus?The blue calculus has been mentioned here before, but I'm having trouble figuring out what kind of category arises from it. Terms in Blue are objects and reduction rules are morphisms. This is kind of odd, since the typical view of the lambda calculus has types as objects and reduction-rule-equivalence-classes of terms as morphisms. Since the blue calculus isn't confluent, that approach doesn't really work. Given a category T of types and type-preserving maps, you can type the blue calculus with a functor F:Blue->T; this functor is defined recursively using type inference rules. The original paper only considered the case where T is a discrete category. This paper on how pi calculus is a cartesian closed double category might be relevant, but I haven't been able to understand it yet. It's not even clear to me what the objects, horizontal and vertical morphisms are. Can anyone help? JVM Language SummitAs a fairly ubiquitous platform with access to a staggering array of libraries the Java Virtual Machine is a popular choice for language runtime. But the JVM can be one of the hardest VMs to target since it is so tied to Java's semantics *cough*tail calls*cough*. The Da Vinci Machine Multi Language VM project is attempting to address these challenges by extending the JVM to support language constructs not found in Java. As part of this effort they're having a summit:
The invitation closes with
PS: Also worth mentioning is that if you are targeting the JVM or thinking of targeting the JVM there's a Google group just for you. 2008 ICFP Programming Contest Mark your calendars for Friday, July 11, 2008 to Monday, July 14, The ICFP Programming Contest is one of the most advanced and The specific task will be announced when the contest begins. In the http://icfpcontest.org/ Please direct any questions to Tim Sheard at sheard@cs.pdx.edu. -Tim Chevalier, on behalf of the 2008 contest organizers Our Own Little Language
Many Programming Languages Can Be Extended Upon Somewhat Easily. Such As Python, Or Lua. As Well As Language Bridges Between Languages, Python And Lua Can Be Bridged Together With Lunatic-Python, Which Allows You To Invoke The Python Interpreter From Within Lua And The Lua Interpreter Inside Of Python. Anyway I Was Wondering If Anybody Here Is Familiar With The Superset Of C, Cilk.It Is Intended For Massive Parallelism In C Programs.I Was Wondering If Somebody Could Help Me Develop Wrappers For:
First class class objects, class vs. value namespaces, etc.I was reading up on Scala and noticed that classes and value bindings have different namespaces. This got me thinking about how different languages treat classes. As an extreme case, consider Smalltalk vs. C++. I Googled for papers like crazy, but turned up nothing. There's just too much cruft involving keywords like "first class classes" and like queries. Are there any good comparative studies/overviews of the treatment of classes in different object oriented languages and the implications/trade offs/etc. of these different treatments? Any manifestos promoting one or another treatment would be great as well. Thanks much! Scott help with understanding combinatory logicHi, was wondering if someone could explain more in detail about "combinatory logic" in a simplistic way. I am not a programmer, I do 3-D animation and I fell into Lambda Calculi while reading I believe an article about a video games that mentioned something about functional progaming. Anyway I started getting an interested in Lambda Calculi and I found a lot of articles about it online. It took me a while to understand it but when I did, the concept around it seemed rather easy. Now I'm trying to learn how combinatory logic works, but there isn't as much material on it as there is with Lambda Calculi. Usually it is lumped into a Lambda Calculi article without much dedication to it. Or I find it talked about in a programing languages such as "unlambda" but as I am not a programming, so I get confused. I started to "get" Lambda Calculi, when I started learning how Church numbers work, and saw examples of how to do simple arthritic like adding and multiplying. So far I can't find anything like this with combinatory logic, can someone show examples of how to make numbers with combinatory logic and to do something like add or multiply with it? This would be a great help. |
Browse archives
Active forum topics |
Recent comments
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 2 days ago
8 weeks 2 days ago
8 weeks 6 days ago
8 weeks 6 days ago
9 weeks 7 hours ago
9 weeks 11 hours ago
9 weeks 12 hours ago
9 weeks 12 hours ago