Тетрадь звукового анализа для первого класса по программе «Гармония»
- Бутырина Юлия Владимировна, учитель начальных классов
Разделы: Начальная школа
Обозначение звуков:
Задание 1. Раскрасить все игрушки зеленым цветом и под каждой нарисовать столько квадратиков, сколько в слове звуков.
Задание 2. Раскрасить всю одежду синим цветом и под каждым предметом нарисовать столько квадратиков, сколько в нем звуков.
Задание 3. Раскрасить всю посуду красным цветом. Под каждым рисунком нарисовать звуковой домик.
Гласные и согласные звуки.
Обозначение:
– гласный звук.
– согласный звук.
Задание 4.
Кому что нужно для работы? Соедини подходящие картинки.
Задание 5. Как назвать одним словом предметы, которыми работает мальчик. Составь звуковой домик к этому слову. ________________
Задание 6. Составить звуковые домики к каждому предмету, которым работает мальчик.
1. ____________________ 3._______________________
2. ____________________ 4. _______________________
Задание 7. Нарисуй ещё один инструмент и составь к его названию звуковой домик. ________________________
Согласные звуки твёрдые и мягкие.
Обозначение:
– гласный звук.
– твердый согласный звук.
– мягкий согласный звук.
Задание 8. В каждой группе зачеркни лишний предмет. Под каждым рисунком составь звуковую схему слова.
Согласные звуки звонкие и глухие.
Обозначение:
– гласный звук.
– твердый глухой согласный звук.
– твердый звонкий согласный звук.
– мягкий глухой согласный звук.
– мягкий звонкий согласный звук.
Задание 9. Дорисуй картинки и раскрась их. Назови все предметы одним словом. Сделай для него звуковой домик. ______________
Задание 10. Сделай звуковой домик для каждого предмета.
1. ____________________ 4. _____________________
2. ____________________ 5. _____________________
3. ____________________
Задание 11.
Подбери пару каждому предмету. Соедини их линиями.
Задание 12. В № 11 раздели слова на слоги.
Слог. Ударение.
Задание. Для каждой мамы найди ее детеныша.
Задание. Под каждым изображением составь звуковую схему, раздели на слоги, поставь ударение.
Задание 15. Вернись к № 11 и поставь ударение в каждом слове.
Материал для звукового анализа слов.
№ 16. Раскрась. Под каждой картинкой составляй звуковую схему слова, дели на слоги, ставь ударение.
Задание № 17. Раскрась лишний предмет. Под каждым рисунком составь звуковую схему слова. Раздели на слоги, поставь ударение.
Задание № 18. Под каждой картинкой начерти звуковую схему слова, отмечая все “опасные места”.
Задание № 19. Составить и записать звуковую схему слова под каждой картинкой. Отметить “опасные места”.
Задание № 20. Раскрась. Составь и запиши звуковую схему слова, отмечая “опасные места”.
Задание № 21. Под каждой картинкой на первой строке составить звуковую схему, отмечая “опасные места”; на второй строке напечатать слово, делая “окошки в опасных местах”.
Задание № 22. Под каждым рисунком на первой строке составить звуковую схему слова, отмечая “опасные места”, на второй – напечатать слово, делая “окошки в опасных местах”.
Задание № 23. На первой строке начертить звуковую схему слова, отмечая точкой “опасные места”, на второй – напечатать слово, делая “окошки в опасных местах”.
как сделать звуковой анализ слова, фонетический разбор слова 1 класс примеры. Звуковой разбор слова схема, примеры фонетического разбора слов. Что нужно знать первоклассникам о разборе слова на буквы и звуки?
Сегодня мы рассмотрим правила и последовательность анализа слова на звуки и буквы. А также остановимся на цветовом разборе.
Содержание статьи
- Звуковой разбор слова схема
- согласные звуки парные непарные твердые мягкие
- мягкость и твердость гласных букв
- как выполнить звуковой разбор слова
- звуковой анализ слова в 1 классе схема
- Цветовой разбор слова 1 класс
- слияние букв в слоги
- Фонетический разбор слова 1 класс примеры
- Фонетический разбор слова 1 класс цветовая схема
- Фонетический разбор слова памятка
- Примеры звукобуквенного разбора
Звуковой разбор слова схема
Звуки в словах отличаются друг от друга по своим признакам. От порядка звуков в слове меняется значение слова.
Звуки делятся на:
согласные звуки парные непарные твердые мягкие
мягкость и твердость гласных букв
как выполнить звуковой разбор слова
Слово можно разобрать на отдельные звуки. Такой разбор будет называться звуковым анализом слова.
- произнесем слово и послушаем себя,
- запишем его и разделим на слоги,
- произнесем слово с удивлением и найдем ударный слог,
- найдем каждый звук в этом слове: произносим слово, выделяя первый звук, второй и т.д. звуки.
- обозначим выделенный звук соответствующим значком.
звуковой анализ слова в 1 классе схема
Цветовой разбор слова 1 класс
Разбор слов может быть цветовым, т.е. каждой букве соответствует свой цветовой квадрат.
цвет буквы гласной согласной твёрдой согласной мягкой
слияние букв в слоги
Слоги в схеме имеют свое обозначение. Слоги слияния делятся на мягкую и твердую согласную с гласной. Такие соединения обозначаются прямоугольником, состоящим из двух треугольников: зелено-красных и сине-красных.
Слог слияние — ма — это сине-красный прямоугольник.
Обратный слог состоит из двух соединенных квадратов, например, — ам — соединенный прямоугольник из красного и синего квадрата.
Закрытый согласной слог, например, — сон — обозначают сине-красным прямоугольником и синим квадратом.
Также существуют слоги со стечением согласных, когда две согласные стоят друг с дружкой, например, слог – сло — синий квадрат и сине-красный прямоугольник.
Фонетический разбор слова 1 класс примеры
Каждое слово имеет свой набор букв, слогов и звуков. Определение их количества, графическая форма, постановка ударения, классификация букв и звуков называется фонетическим анализом. Такой разбор имеет свой алгоритм действий.
Приведем примеры:
Фонетический разбор слова 1 класс цветовая схема
Фонетический разбор слова памятка
Примеры звукобуквенного разбора
звукобуквенный разбор слова солнце
разбор слова сон
фонетический разбор слова лето
анализ слова мост
фонетический разбор слова гора
слово буквенный разбор песня
сделать звуко буквенный разбор слова язык
разбор слова спорт
фонетический разбор слова окно
мода разбор слова
разбор 1 слова весна
разбор 1 слова снег
разбор 1 слова цветы
разбор слова спорт
разбор слова велосипед
разбор слова дерево 1
разбор слова ночь 1
разбор слова лифт
разбор слова лодка
разбор слова венок
Придерживаясь алгоритма фонетического разбора, а также зная базовые правила русского языка, можно произвести разбор любого слова.
SI413: Функции и объекты первого класса
SI413: Функции и объекты первого класса В большинстве языков, с которыми вы сталкивались, функции и данные принципиально отличаются или, по крайней мере, используются иначе. Когда вы в последний раз передавали функцию как аргумент другой функции? Когда вы в последний раз возвращались функция из другой функции? Это вещи, которые либо невозможно делать, неудобно делать или обычно не делают в другие языки, с которыми вы знакомы. В функциональных языках как схема, однако, мы делаем все это все время. В функциональные языки, функции являются «первоклассными объектами», что означает вы можете делать с ними все то же самое, что и с данными.функции в качестве аргументов для других функций
Как вы, возможно, заметили, вы никогда не рассказываете схему что такое тип параметра функции. Таким образом, если я определить какую-то функцию (f x y), ничто не мешает мне называя это так: (f sqrt 16). Другими словами, есть ничто не мешает мне передать f функцию как одну из ее аргументы. Имеет ли это смысл? Это зависит от того, что f делает с параметр х. Если он использует его как функцию, то он делает смысл:
> (определить (f x y) (x (x y))) > (f кв. 16) 2
Что здесь случилось? Ну, поскольку x равно sqrt, а y равно 16, f оценивается как (sqrt (sqrt 16)), что равно 2. Итак, f — это «применить функция x дважды аргументирует функцию y». Передача функций для таких функций очень мощный. Это часть того, что мы имеем в виду, когда говорим, что «функции являются объектами первого класса» на функциональном языке.
Задача: Конечная разность. Учитывая функцию g (x), конечная разность g(x) при x=n равна г(п + 1) — г(п). Определить функцию (fd-at g n) который принимает функцию g и значение n и возвращает конечное разница g в n.
> (определить (f x) (* x x)) > (fd-при f 3) 7 ← это (f 4) минус (f 3), т.е. 16 - 9
Снова проценты
Вот мое решение вашей проблемы сложных процентов от первая лаборатория:
;################################################## ##################### ;## ПРОБЛЕМА 2 ;################################################## ##################### ;; составной месяц B r: возвращает баланс после 1 месяца начисления процентов (определить (составной-месяц Б р) (* Б (+ 1 (/р 1200,0)))) ;; составные месяцы B r m: возвращает остаток после m месяцев начисления процентов (определить (составные месяцы B r m) (если (= m 0) Б (составные-месяцы (составные-месяцы B r) r (- m 1)))) ;; accrue B r y: возвращает баланс через y лет ежемесячного начисления процентов (определить (начислить B r y) (составные-месяцы B r (*y 12)))
Предположим, мы хотим изменить его так, чтобы процентная ставка зависел от вашего баланса — т. е. чтобы курс был функцией баланс. Все, что мне нужно сделать, это переопределить составной месяц соответственно. Далее я предполагаю структуру ставок которые дают 5% процентов на остатки менее 10 000 долларов США и 7% в противном случае.
> (определить (составной-месяц B r) (* B (+ 1 (/ (r B) 1200,0)))) ← теперь курс равен (r B), т.е. это функция баланса в тот момент - это переоценивается каждый "месяц" > (определить (уровень отсечки x) (если (< x 10000) 5 7)) > (начислить 5000 отсечка 20) 15308.706758547634
С этого момента, чтобы изменить план процентной ставки вам нужно только изменить 2-й аргумент в вашем вызове для накопления, x не функция накопления или его подфункции.
Проблема: Определите функцию (победитель бьет? L), которая принимает непустое список L объектов и функция beats, где (beats? x y) возвращает true, если x «превосходит» y, и false в противном случае. [Примечание: бьет? является предикатом.] Функция-победитель должна вернуть объект из L, который «бьет» другие. Пример:
> (define (nearer-10? x y) (< (abs (- x 10)) (abs (- y 10)))) ; возвращает true, если x ближе к 10, чем y > (победитель ближе-10?'(14 8 -1 22 13 15 7 9 15)) 9 > (победитель <'(14 8 -1 22 13 15 7 9 15)) -1
В схеме считается хорошим стилем давать предикатам имена. которые заканчиваются на "?".
Функции и списки: сопоставление и применение
Карта функций (справочная документация) — действительно полезная функция, которая принимает функции в качестве аргументов. (map f L) применяет функцию f к каждому элементу списка L и объединяет результаты в список. Например:
> (карта абс '(-4 12 -3 -8 11 0)) (4 12 3 8 11 0)
Если у вас есть функция с k аргументами, вы даете карту k списки, и он возьмет первый аргумент из списка1, второй из list2 и т.д.
> (карта * '(2 3 4) '(6 5 4)) (12 15 16)
Еще одна полезная функция этого типа — применить, (apply f L) вызывает функцию f с аргументами элементами из L. Здесь несколько примеров:
> (применить макс '(4 6 2)) ; то же, что (макс. 4 6 2) 6 > (применить - '(3 7)) ; то же, что (- 3 7) -4
сочетание map и apply может быть очень интересным.
> (определить (кв. х) (* х х)) > (карта sqr '(1 2 3 4 5 6 7 8 9 10)) (1 4 9 16 25 36 49 64 81 100) > (применить + (карта sqr '(1 2 3 4 5 6 7 8 9 10))) 385 > (длина карты '( (1 4 0) (CG) ("The" "Way" "Out" "Is") )) (3 2 4) > (применить + (длина карты '( (1 4 0) (CG) ("The" "Way" "Out" "Is") ))) 9
Проблемы: Вы должны использовать «карту», чтобы решить их, нет разрешена рекурсия!
- Определите функцию (prod-root L), которая принимает список L из
положительные числа и возвращает произведение
квадратные корни этих чисел. Например:
> (prod-root '(1 4 9)) 6
- Определите функцию (sum-lenths L), которая принимает список длин,
каждая дана парами (футы-дюймы) и распечатывает
сумма всех длин в дюймах. Пример:
> (сумма длин '((3 8) (1 11))) 67
что составляет 3 фута 8 дюймов плюс 1 фут 11 дюймов.
Лямбда
С такими функциями, как map и apply, вам захочется создать функции "на лету", в отличие от написания "определить" заявления для них. Например, для создания списка кубы целых чисел от 1 до 10, было бы неплохо иметь возможность
(карта CreateCubeFunction '(1 2 3 4 5 6 7 8 9 10))
Зачем создавать функцию с именем cube, которая загромождает наш окружающей среды и больше никогда не будет использоваться? Зачем давать это временная функция имя? Что ж, «лямбда» предоставляет альтернативу:
(карта (лямбда (х) (* х х х)) '(1 2 3 4 5 6 7 8 9 10))
Лямбда-выражение говорит: «создайте функцию с аргументом список (x) и тело функции (* x x x)". Единственный реальный разница между лямбдой и синтаксисом «define», который мы использование заключается в том, что мы не даем функции имя. Для функций с несколькими аргументами вы просто делаете то же самое ... но с дополнительными аргументами. Предположим, вы хотите построить список попарных расстояний между двумя списками значений: 92
Так, например
> (ssqd '(3 8 2 6) 4) 25
Лямбда и определить
Мы определяли функции, используя , определяем
.
Например, функция куба была определена следующим образом:
(определить (куб x) (* x x x))
На самом деле, это просто сокращение для следующего:
(определить куб (лямбда (x) (* x x x)))
Таким образом, мы снова видим, что функции и данные на самом деле являются
такой же. Мы видим, например, что куб
ничего
больше, чем глобальная переменная, значение которой функция ничем не отличается от такой глобальной переменной:
(определить pi2 (расширение 3. lk, где L = (l1 l2 l3 ... lk) (пусть ((p2 (лямбда (x) (expt 2 x)))) (применить + (карта п2 L)))) > (сумма степеней двойки '(0 1 2 3 4)) 31
Обратите внимание, что мы использовали лямбда, чтобы взять 2-аргументную функцию и создать новую 1-аргументную функцию, зафиксировав один из ее аргументов: т.е. (p2 x) равно (expt 2 x). Этот процесс (создание новой функции функцию, фиксируя один или несколько аргументов существующей функция) достаточно распространена и достаточно важна, чтобы иметь имя: каррирование .
Соединяем все вместе
Проблема
Соединяем все вместе, определяя
функция (dist p1 p2)
, который возвращает расстояние
между точками p1 и p2 (заданными в виде списка координат).
Хитрость в том, что p1 и p2 могут быть точками любого измерения.
пространство: 2D, 3D, 4D и т. д. Примеры:
> (расстояние '(1 2) '(5 4)) 4.47213595499958 > (расстояние '(1 1 3 0) '(5 4 0 2)) 6. 164414002968976
Вы должны быть в состоянии определить это в одном, относительно короткая строка с использованием карты, лямбда и применить.
Примечание: Расстояние между точками (a1 a2…ak) и (b1 b2…bk) 92)
Отправить
Вы отправите файл схема03.scm
в
подать систему. Убедитесь, что все, что не является функцией
определение закомментировано, так что нет вывода, когда
скрипт выполняется. Вы будете представлять как:
submit-external -c=si413 -p=scheme03 схема03.scm
Кристофер В. Браун
Простая схема: введение в информатику, глава 5: слова и предложения
Простая схема: Введение в информатику 2/e Copyright (C) MIT, 1999 г.
Глава 5
|
В части I мы начали с примеров об аббревиатурах и т. д., но поскольку тогда мы работали с числовыми старыми номерами. Это потому, что дискуссии об оценке и определении процедуры были сложными достаточно, не вводя при этом дополнительных идей. Но теперь мы готов вернуться к символьному программированию.
Как мы упоминали в главе 3, все, что вы вводите в Scheme,
оценивается, и полученное значение распечатывается. Допустим, вы хотите использовать
«квадрат» как слово в вашей программе. Например, вы хотите, чтобы ваша программа
решить задачу: «Назовите прилагательное, описывающее
Барри Манилоу.» Если вы просто наберете квадратов
в Scheme, вы
обнаружим, что квадратов
— это процедура:
> квадрат #<ПРОЦЕДУРА>
(В разных версиях Scheme будут разные способы печати вне процедуры.)
Вам нужен способ сказать, что вы хотите использовать слово « квадрат
» само по себе, , а не значение этого слова, как
выражение. Способ сделать это — использовать quote
:
> (квадрат в кавычках) КВАДРАТ > (цитата (завтра не знает)) (НИКОГДА НЕ ЗНАЕШЬ ЧТО БУДЕТ ЗАВТРА) > (цитата (вещи, которые мы говорили сегодня)) (ТО, ЧТО МЫ ГОВОРИЛИ СЕГОДНЯ)
Цитата
— это особая форма, поскольку ее аргумент не оценивается. Вместо этого он просто возвращает аргумент как есть.
Программисты схем часто используют в кавычках
, поэтому для него существует аббревиатура:
> 'квадрат КВАДРАТ > '(старый коричневый ботинок) (старый коричневый ботинок)
(поскольку Scheme использует апостроф как аббревиатуру для цитата
, вы не можете использовать его в качестве обычного знака препинания в предложении.
Вот почему мы избегали таких заголовков, как (любовь не купишь)
.
На схеме это будет означать (можно (кавычка) купить мне
любовь)
!)[1]
Эта идея цитирования, хотя она может показаться произвольной в контексте компьютерное программирование, на самом деле довольно знакомо из обычного английского языка. Что такое книга? Это куча бумажек с печатью на них, связаны вместе. Что такое «книга»? Это словосочетание, состоящее из артикля и существительное. Видеть? Аналогично, что такое 2+3? Уже пять. Что такое «2+3»? Это арифметическая формула. Когда вы видите слова в кавычках, вы поймите, что вы должны думать о самих словах; ты не оценивайте, что они означают. Схема такая же.
(Не случайно дети, которые шутят, любят
Мэтт: «Назови свое имя.»Брайан: «Ваше имя.»
вырастают программистами. Разница между вещь и ее название — одна из важных идей, которую программисты должны понимать.)
Селекторы
До сих пор все, что мы делали со словами и предложениями, это цитировали их. Чтобы сделать больше интересная работа, нам нужны инструменты для двух видов операций: Мы должны быть мы можем разобрать их, и мы должны быть в состоянии поставить их вместе.[2] Мы начнем с инструменты для разборки; технический термин для них 9Селекторы 0005.
> (первое что-то) С > (первый '(восемь дней в неделю)) ВОСЕМЬ > (первая 910) 9 > (последнее что-то) г > (последние '(восемь дней в неделю)) НЕДЕЛЯ > (последние 910) 0 > (но сначала что-то) ЧТО-ТО > (но сначала '(восемь дней в неделю)) (ДНЕЙ В НЕДЕЛЮ) > (но сначала 910) 10 > (но последнее что-то) ЧТО-ТО > (butlast '(восемь дней в неделю)) (ВОСЕМЬ ДНЕЙ А) > (но последний 910) 91
Обратите внимание, что первые
предложения являются словом, а первые
слова — это буква. (Но нет отдельного типа данных
называется «письмо»; буква такая же, как однобуквенное слово.) butfirst
предложения есть предложение, а butfirst
предложения.
слово есть слово. Соответствующие правила справедливы для последних
и и последний
.
Имена , но сначала
и , но потом
не предназначены для описания способов
сани; они сокращают «все , но
первые
» и «все но
последний
».
Вам может быть интересно, почему нам даны способы найти первую и последнюю элементы, но не 42-й элемент. Оказывается, те, что у нас есть достаточно, так как мы можем использовать эти примитивные селекторы для определения других:
(определить (второе) (первое (но первое))) > (секунда '(как мечтатели)) МЕЧТАТЕЛИ > (вторая Мишель) я
Однако существует примитивный селектор элемента
, который принимает
два аргумента, число n и слово или предложение, и возвращает n th
элемент второго аргумента.
> (пункт 4 '(на благо господина кайта!)) ВЫГОДА > (пункт 4 «выгода») Е
Не забывайте, что предложение, содержащее ровно одно слово, отличается от само слово, и селекторы работают с ними по-разному:
> (сначала потому что) Б > (сначала '(потому что)) ПОТОМУ ЧТО
> (но сначала потому что) ПРИЧИНА > (но сначала '(потому что)) ()
Значением этого последнего выражения является пустое предложение. Вы можете сказать, что это предложение из-за скобки, и вы можете сказать, что он пуст, потому что между их.
> (но сначала 'а) "" > (но сначала 1024) "024"
Как показывают эти примеры, иногда , но сначала
возвращает слово
который должен быть заключен в двойные кавычки. Первый пример
показывает пустое слово , , а второе показывает число
это не в его обычной форме. (Его числовое значение равно 24, но вы не
обычно видят ноль впереди.)
> 024 24 > "024" "024"
Мы постараемся не печатать эти смешные слова. Но не удивитесь, если увидите один как возвращаемое значение одного из селекторов для слов. (Обратите внимание, что вам не нужно ставить одинарную кавычку перед двойные кавычки. Строки оценивают себя так же, как и числа.)
Так как , но сначала
и , а затем
так трудно набирать, есть
сокращения bf
и bl
. Вы можете понять, что есть что.
Конструкторы
Функции для объединения вещей называются конструкторами. На данный момент у нас есть только два из них: слово
и предложение
. Word
принимает любое количество слов в качестве аргументов и объединяет их вместе
в одно громадное слово:
> (слово 'ses' qui 'pe' da'lian'ism) СЕСКВИПЕДАЛИЗМ > (слово "сейчас" здесь) НИГДЕ > (слово 35 893) 35893
Предложение
похоже, но немного отличается, так как оно может состоять из обоих
слова и предложения в качестве аргументов:
> (предложение «нести» этот «вес») (НЕСТИ ЭТО ВЕС) > (предложение '(Джон Пол) '(Джордж Ринго)) (ДЖОН ПОЛ ДЖОРДЖ РИНГО)
Предложение
также слишком сложно напечатать, так что есть
аббревиатура se
.
> (se '(один плюс один)' дает 2) (ОДИН ПЛЮС ОДИН ДЕЛАЕТ 2)
Кстати, почему в последнем примере дает
, но
не 2
? Это потому, что числа дают самооценку, как мы уже говорили.
в главе 3. Мы должны процитировать дает
, потому что иначе Схема
будет искать что-то с именем , вместо того, чтобы использовать слово
,
сам. Но числа не могут быть именами вещей; Они представляют
сами себя. (На самом деле, вы можете указать 2
, и это ничего не даст.
разница — понимаете почему?)
Первоклассные слова и предложения
Если Scheme не является вашим первым языком программирования, вы, вероятно, привыкли к работе с английским текстом на компьютере совсем по-другому. Многие другие языки трактуют предложение, например, просто как совокупность «строка») из символов , таких как буквы, пробелы и знаки препинания. Эти языки не помогут вам поддерживать двухуровневую природу английского языка. текст, в котором предложение состоит из слов, а слово состоит из буквы.
Исторически компьютеры работали только с числами. Вы можете добавить два числа, переместить число из одного места в памяти компьютера в другое место, и скоро. Так как каждая инструкция в родной машине компа язык не мог обрабатывать ничего больше числа, программисты выработал отношение к тому, что одно число является «реальной вещью», в то время как все более сложное следует рассматривать как совокупность вещей, а не как нечто само по себе.
Компьютер представляет текстовый символ как одно число. Во многих языках программирования, поэтому персонаж — это «настоящая вещь», но слово или предложение понимается только как совокупность этих кодовые числа символов.
Но это не то, как люди обычно думают о своих собственных язык. Для вас слово — это прежде всего не строка символов (хотя это может временно показаться таковым, если вы соревнуетесь в правописании). Это больше похоже на единую смысловую единицу. Точно так же предложение является языковая структура, частями которой являются слова, а не буквы и пробелы.
Язык программирования должен позволять вам выражать свои идеи в терминах, которые соответствуют ваш образ мышления, а не способ компьютера. Технически, мы говорим что слова и предложения должны быть первоклассными данными в нашем язык. Это означает, что предложение, например, может быть аргументом процедура; это может быть значение, возвращаемое процедурой; мы можем дать ему имя; и мы можем строить агрегаты, элементами которых являются предложения. До сих пор мы видели как сделать первые два из них. Мы закончим работу в главе 7 (на переменных ) и Глава 17 (на списков ).
Ловушки
Мы избегали апострофов в наших словах и предложениях, потому что
это аббревиатуры специальной формы цитаты
. Вы также должны избегать
точки, запятые, точки с запятой, кавычки, вертикальные черты и, конечно же,
скобки, так как все они имеют особое значение в Scheme. Вы можете,
однако используйте вопросительные и восклицательные знаки.
Хотя мы уже упоминали о необходимости избегать имен примитивов
при выборе формальных параметров хотим особо напомнить о
имена слово
и предложение
. Часто это очень заманчивые формальные
параметры, потому что многие процедуры имеют в качестве своих слов слова или предложения.
домены. К сожалению, если вы выберете эти имена для параметров, вы не
иметь возможность использовать соответствующие процедуры в рамках вашего определения.
(определить (множественное число) ;; неправильно! (слово слово)) > (множественное число «Джордж») ОШИБКА: GEORGE — это не процедура
Результат подстановки не был, как можно подумать,
(слово "джордж")
а скорее
(Джордж Джордж)
Мы использовали wd
и отправили
в качестве формальных параметров
вместо слово
и предложение
, и мы рекомендуем эту практику.
Есть разница между словом и предложением из одного слова. Для
Например, люди часто попадают в ловушку, думая, что , но сначала
предложения из двух слов, такого как (сексуальная сэди),
— второе слово, но оно
нет. Это длинное предложение из одного слова. Например, это счет
один,
не пять.[3]
> (бойфренд '(сексуальная Сэди)) (СЭДИ) > (первый (бойфренд '(сексуальная сэди))) СЭДИ
Ранее мы упоминали, что иногда Scheme должен заключать двойные кавычки.
вокруг слов. Просто игнорируйте их; не расстраивайтесь, если ваша процедура вернется "6 червей"
вместо просто 6 червей
.
Цитата
не означает «печать». Некоторые люди смотрят на взаимодействие
так:
> '(спокойной ночи) (СПОКОЙНОЙ НОЧИ)
и думаю, что кавычка была указанием на
Схема для печати того, что следует за ней. На самом деле схема всегда печатает .
значение каждого выражения, которое вы вводите, как часть цикла чтения-оценки-печати.
В этом случае значением всего выражения является подвыражение, которое
цитируется, а именно предложение (спокойной ночи)
. Это значение не
быть напечатано, если цитата была частью некоторого большего выражения:
> (bf '(спокойной ночи)) (НОЧЬ)
Если вы видите сообщение об ошибке, например
> (+ 3 (бф 1075)) ОШИБКА: НЕДЕЙСТВИТЕЛЬНЫЙ АРГУМЕНТ ДЛЯ +: "075"
попробуйте ввести выражение
> (строки-числа #t) ХОРОШО
и повторите попытку. (Расширение Scheme, позволяющее выполнять арифметические
операции для работы с нестандартными номерами типа "075"
делают обычные
арифметика медленнее, чем обычно. Итак, мы предоставили способ превратить расширение
включить и выключить. Вызов строк-числа
с аргументом #ф
отключает расширение.)[4]
Сверлильные упражнения
5.1 Какие значения выводятся, когда вы вводите эти выражения в Scheme? (Фигура прокручивайте в голове, прежде чем попробовать на компьютере.)
(предложение «я» (мое мое)) (предложение '()' (пусто)) (слово '23 '45) (с '23 '45) (бф'а) (бф '(да)) (считай (сначала '(мэгги мэй))) (см "" '() "" '()) (количество (se "" '() "" '()))
5. 2 Для каждого из следующих примеров напишите процедуру из двух аргументов который при применении к аргументам примера возвращает результат примера. Ваши процедуры могут не включать какие-либо цитируемые данные.
> (f1 '(a b c) '(d e f)) (Б В Г Д) > (f2 '(a b c) '(d e f)) (Б В Г Д Е АФ) > (f3 '(a b c) '(d e f)) (А Б С А Б С) > (f4 '(a b c) '(d e f)) БЫТЬ
5.3 Объясните разницу в значении между (первый мезонин)
и (первый '(мезонин))
.
5.4 Объясните разницу между двумя выражениями (первый (квадрат 7))
и (первый '(квадрат 7))
.
5.5 Объясните разницу между (слово 'a'b'c)
и (se 'a'b'c)
.
5.6 Объясните разницу между (бф 'забадак)
и (но сначала
'забадак)
.
5.7 Объясните разницу между (bf 'x)
и (butfirst '(x))
.
5. 8 Что из нижеперечисленного является допустимым предложением Схемы?
(здесь, там и везде) (помощь!) (все, что я должен сделать) (вы знаете мое имя (ищите номер))
5.9 Выясните, какие значения вернет каждое из следующих значений: от до . вы попробуете их на компьютере:
(се (слово (бл(бл(первый'(сделать а)))) (bf (bf (последняя '(бейсбольная перчатка))))) (слово (первый'с) (бл(бл(бл(бл'жестко)))) (первый 'прошел) (первый (бф' швы)))) (се (слово (бл (бл 'принести)) 'а (последнее 'чистить)) (слово (бл (последнее '(бейсбольная кепка))) (последнее' за) (бл (бл 'очень)) (последние (первые'(солнечные дни)))))
5.10 Какие аргументы можно привести , но сначала
, чтобы
возвращает слово? Предложение?
5.11 Какие аргументы вы можете дать последним
, чтобы он вернул слово? А
предложение?
5.12 Какие из функций первая
, последняя
, но первая
и бутласт
может возвращать пустое слово? Для каких аргументов? Как насчет
вернуть пустое предложение?
Реальные упражнения
5. 13 Что означает '
'банан
?
Что такое (первый '
' банан)
и почему?
5.14 Напишите процедуру третья
, которая выбирает третью букву слова
(или третье слово предложения).
5,15 Напишите процедуру first-two
, которая принимает слово в качестве аргумента,
возвращает двухбуквенное слово, содержащее первые две буквы аргумента.
> (первые две амбулаторные) ЯВЛЯЮСЬ
5.16 Напишите процедуру two-first
, которая принимает два слова в качестве аргументов,
возвращает двухбуквенное слово, содержащее первые буквы двух
аргументы.
> (два первых Брайана Эпштейна) БЫТЬ
Теперь напишите процедуру two-first-sent
, которая принимает два слова
предложение в качестве аргумента, возвращающее двухбуквенное слово, содержащее первый
буквы двух слов.
> (два первых отправленных '(Брайан Эпштейн)) БЫТЬ
5. 17 Напишите процедуру knight
, которая использует имя человека в качестве имени.
аргумент и возвращает имя с «Сэр» перед ним.
> (рыцарь '(Дэвид Вессель)) (СЭР ДЭВИД ВЕССЕЛЬ)
5.18 Попробуйте следующее и объясните результат:
(определить (окончание слова) (слово (первое слово) (последнее слово))) > (заканчивается на "Джон")
5.19 Напишите процедуру вставка-и
, которая принимает предложение элементов и
возвращает новое предложение с «и» в нужном месте:
> (вставить-и '(Джон Билл Уэйн Фред Джоуи)) (ДЖОН БИЛЛ УЭЙН, ФРЕД И ДЖОУИ)
5.20 Определите процедуру для поиска чьего-либо отчества:
> (отчества '(Джеймс Пол Маккартни)) (ПАВЕЛ) > (отчества '(Джон Рональд Рауль Толкин)) (РОНАЛЬД РАУЛЬ) > (отчества '(Багз Банни)) () > (отчества '(питер блэр денис бернар никто)) (БЛЭР ДЕНИС БЕРНАР)
5.21 Напишите процедуру query
, которая превращает утверждение в вопрос
поменяв местами первые два слова и добавив вопросительный знак к последнему слову:
> (запрос '(вы опытны)) (ВЫ ОПЫТНЫ?) > (запрос '(мне следовало бы знать лучше)) (МНЕ НУЖНО ЗНАТЬ ЛУЧШЕ?)
[1] На самом деле это это можно ставить знаки препинания внутри слов, если все слово заключено в двойные кавычки отметки, например:
> '("не могу" купить мне любовь) ("не могу" КУПИТЬ МНЕ ЛЮБОВЬ)
Такие слова называются строками.