Преимущества схемы обучения? - PullRequest
22 голосов
/ 19 сентября 2008

Я только что начал один из моих курсов, так как занятия только начались 2 недели назад, и мы сейчас изучаем Схему в одном, я полагаю, что по какой-то причине позже, но в основном то, что он преподает, это как напиши в схеме. Сидя здесь, пытаясь не заснуть, я просто пытаюсь понять, почему я хотел бы знать это, и почему кто-то использует это. В чем он превосходит? На следующей неделе я планирую спросить его, какова цель учиться здесь, кроме как просто писать вещи в схеме.

Ответы [ 9 ]

33 голосов
/ 19 сентября 2008

Это функциональный язык программирования, который значительно расширит ваши возможности.

Даже если вы не используете его в реальном мире, это не значит, что оно не имеет никакой ценности. Это поможет вам овладеть такими вещами, как рекурсия, и заставить вас думать о проблемах иначе, чем обычно.

Я желаю моя школа заставила нас выучить функциональный язык программирования.

9 голосов
/ 19 сентября 2008

Такие языки, как LISP (и очень тесно связанная Схема) предназначены для программирования того, что латынь для английского.

Вы, возможно, никогда больше не будете говорить по-латыни в своей обычной жизни после прохождения курса, но простое изучение языка, такого как латынь, улучшит вашу способность использовать английский.

То же самое относится и к Схеме.

6 голосов
/ 19 сентября 2008

Я бы посоветовал сохранять открытость при обучении. Большую часть времени в школе мы не полностью понимаем, что / почему мы изучаем определенный предмет. Но, как я пережил около миллиона раз в жизни, это оказывается очень полезным и, по крайней мере, знание о нем помогает вам. Схема, хотите верьте, хотите нет, сделает вас лучшим программистом.

6 голосов
/ 19 сентября 2008

Я вижу, что все эти люди здесь говорят, что, хотя они никогда больше не будут использовать Схему, тем не менее, это был стоящий язык для изучения, потому что он заставляет определенное мышление. Хотя это может быть правдой, я надеюсь, что вы изучите Схему, потому что в конечном итоге вы найдете ее полезной, а не просто упражнением в обучении.

Хотя это не так быстро, как скомпилированный язык, и при этом он не особенно полезен при обслуживании веб-сайтов или разборе текста, я обнаружил, что Scheme (и другие подсказки по расширению) не имеют параллелей, когда речь идет о простоте, элегантности и мощные функциональные манипуляции со сложными структурами данных. Если честно, я думаю в Схеме. Это язык, на котором я решаю проблемы. Не сдавайтесь или просто терпите Схему - дайте ей шанс, и она вас не разочарует.

Кстати, лучшей IDE для Scheme является DrScheme , и она содержит языковые расширения, позволяющие делать все, что вы можете делать на другом языке, а если вы что-то не можете найти, вы можете просто использовать С ФФИ и напиши сам.

6 голосов
/ 19 сентября 2008

Некоторые люди говорят, что самая сильная сторона Схемы - это язык обучения. Хотя очень полезно изучать функциональное программирование (это совершенно новый способ мышления), еще одним преимуществом схемы обучения является то, что оно также «чисто». Конечно, он не может делать кучу таких вещей, как java, но в этом-то и здорово, это язык, состоящий исключительно из скобок, буквенно-цифровых символов и нескольких других знаков препинания.

В моем вступительном курсе нас учат Java, и я вижу, как многие мои друзья борются с 'public static void main', хотя это не главное для программы, и у профессионалов нет другого выбора, кроме как 'отмахиваться' от нее. пока они не станут более продвинутыми. Вы не видите этого в Схеме.

Если вы действительно хотите узнать, что может сделать Scheme, на куске пирога, который действительно сложно реализовать на таких языках, как Java, я предлагаю взглянуть на это: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_sec_1.3

Это, вероятно, лучшая книга, написанная на Схеме.

3 голосов
/ 19 сентября 2008

Схема использовалась НАСА для программирования некоторых марсоходов. Его использование на рынке довольно специфично, но, как я уверен, ваши преподаватели говорят вам, то, что вы изучите в Схеме, в целом отразится на программировании.

1 голос
/ 19 сентября 2008

Постарайтесь не увлекаться такими деталями, как скобки и car / cdr. Большая часть того, что вы изучаете, так или иначе переводится на другие языки. Не беспокойтесь о том, сможете ли вы вывести Scheme на рынок, скорее всего, вы будете изучать другие, более востребованные языки, в других классах. То, что вы изучаете здесь, важнее.

Если вы изучаете схему, вы можете узнать все о том, как реализованы объектные системы (подсказка: объектная система не всегда относится к типу, с которым связаны методы и переменные экземпляра ...). Хотя такого рода знания не помогут в 95% вашей повседневной работы, для 5% вашей работы вы будете зависеть от этих знаний.

Кроме того, вы можете узнать о совершенно разных стилях вычислений, таких как потоковая / ленивая оценка или даже логическое программирование. Вы также можете узнать больше о том, как интерпретируются компьютерные программы в целом; от основ в том, как оценивается программный код, до более глубоких аспектов, таких как создание собственного интерпретатора и компилятора). Знание такого рода информации - вот что отличает хорошего программиста от великого программиста.

Схема на самом деле не является функциональным языком, она более независима от метода. Возможно, что еще важнее, Scheme - отличный язык для выбора, если вы хотите изучить различные методы вычислений. Например, высокопараллельный функциональный язык «термит» был построен поверх схемы.

Короче говоря, смысл в схеме обучения заключается в том, чтобы вы могли изучить основы программирования.

Если вам нужна помощь в том, чтобы сделать программирование в схеме более приятным, не бойтесь спрашивать. Многие программисты зацикливаются (например) на скобках, когда есть совершенно отличные способы работы с исходным кодом схемы, которые делают скобки чем-то лелеяющим, а не ненавидящим. Например, emacs с режимом paredit, каким-то образом режимом взаимодействия со схемой и режимом подсветки-скобок довольно хорош.

1 голос
/ 19 сентября 2008

Моя проблема состояла в том, что, изучая это, мы учились прямо вместе с ним. Я не мог сохранить два пролива, чтобы спасти мою жизнь.

Однако я научился у них тому, как лучше писать код на c и java. Это просто из-за другого стиля программирования, который я изучил. Я адаптировал большую часть функционального стиля к некоторым программам, и в некоторых случаях это помогло мне.

Я бы никогда не захотел снова программировать по схеме или шептать, если бы мне это не было нужно, но я рад, что я хотя бы немного поработал над ними, чтобы узнать другой способ программирования.

0 голосов
/ 07 февраля 2014

Функциональные языки, такие как Scheme, отлично применяются в математике, искусственном интеллекте, лингвистике и других высокотехнологических областях информатики (машинное обучение, обработка естественного языка и т. Д.). Это связано с чистотой функциональных языков программирования, которые не имеют побочных эффектов, а также с их способностью легко перемещаться по процедурам более высокого порядка. Глубокое знание функциональных языков программирования имеет решающее значение для решения многих вопросов, которые находятся за пределами компьютерных наук. В качестве бонуса вы получите отличные результаты благодаря процедурам высшего порядка и рекурсии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...