| λ-экстремизм |
[Nov. 1st, 2007|01:51 am] |
Сегодня, разбираясь со студентами, что мы можем и чего не можем сделать с функцией, то ли вспомнил, то ли придумал замечательную формулировку:
В принципе, все управляющие конструкции, кроме лямбды — это синтаксический сахар.
Строго говоря, для Питона, который мы используем в качестве рабочего языка, это не совсем так (и даже совсем не так): питоновская lambda очень слабенькая, а в Питоне-3000 будет, как обещает камрад ван Россум, ещё слабее (я уже не говорю о том, что в языке без оптимизации хвостовой рекурсии попытка писать без for и while даст нам, мягко выражаясь, не слишком эффективный код).
Но усвоить вышеизложенный принцип надо. Мышление в рамках конкретных управляющих конструкций сильно мешает. Характерный момент — сложности с пониманием таких вещей, как замыкания или рекурсия, возникают в основном у тех, кто имеет опыт программирования. Вредная идея, что "цикл — это нечто, имеющее переменную-счётчик цикла и повторяющееся заданное количество раз" — она тоже от знакомства с алгол-подобными языками.
Может, стоило всё-таки делать курс на основе Scheme? Хотя это была бы жесть, да… к тому же для Scheme, увы, нет GUI-библиотеки, хотя бы сравнимой с PyQt4. |
|
|
| Comments: |
![[User Picture]](http://lj.rossia.org/userpic/952/915) | | From: | uri |
| Date: | November 3rd, 2007 - 07:47 am |
|---|
| | | (Link) |
|
Haskell в контексте моей работы это всё-таки запредел (это двухлетние курсы, продуктом которых должен быть аккуратный кодер на C++/C#/Java).
А какая приличная GUI-библиотека есть под Haskell?
А разве Haskell так уж сложен для того, кто может освоить C++ или Java ? По-моему, основам можно научить очень быстро, синтаксис там простой и прозрачный, ну разве что монады требуют некоторых раздумий.
На Хаскеле есть GTK и vxWidgets, кроме того, можно вызывать Win32 функции | |