powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Операторы Pascal/C/Java --> Scheme
17 сообщений из 17, страница 1 из 1
Операторы Pascal/C/Java --> Scheme
    #37778833
h869311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли где заготовки и шалоны, которые позволяют легко и просто переписать операторы if-then-else, for-to, while-do и т.п. в код на Scheme?
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37778865
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311,

if-then-else - впрямую, даже непонятно в чём вопрос.
while(condition) expression <-> (while-func condition-func expression-func)
for переписывается в while: for(A; B; C) D; <-> A; while(B) {D; C;}
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779021
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
(define-syntax while
  (syntax-rules ()
    ((_ condition body ...)
     (let loop ()
       (unless condition
         body
         ...
         (loop))))))

(define (test n)
  (define i 0)
  (while (< i n)
    (set! i (+ i 1))
    (display i)
    (newline)))
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779129
h869311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну по-поводу if-then-else я на тот момент еще не проснулся. Прошу простить :)
Сейчас бы еще очень хорошо найти функции для работы со строками как с массивами символов.
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779130
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311Ну по-поводу if-then-else я на тот момент еще не проснулся. Прошу простить :)
Сейчас бы еще очень хорошо найти функции для работы со строками как с массивами символов.
car, cdr?..
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779140
h869311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k0rvin, чой-то твой код не работает.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
#lang scheme/base

(define-syntax while
  (syntax-rules ()
    ((_ condition body ...)
     (let loop ()
       (unless condition
         body
         ...
         (loop)
         )
       )
     )
    )
  )

(define (test n)
  (define i 0)
  (while (< i n)
         (set! i (+ i 1))
         (display i)
         (newline)
         )
  )

(test (read))
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779205
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311,

сорри, перепутал unless с when
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779214
h869311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю. А вот теперь объясните мне, человеку, который самостоятельно, пользуясь только справочниками и экзамплами, без учителей, преподавателей и репетиторов, изучил Pascal, C, Java, почему, почему я не могу, штудируя SICP, писать код так как Вы?
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779225
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311,

И не переноси закрывающие скобки, это не принято в лиспах =)
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779235
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311Благодарю. А вот теперь объясните мне, человеку, который самостоятельно, пользуясь только справочниками и экзамплами, без учителей, преподавателей и репетиторов, изучил Pascal, C, Java, почему, почему я не могу, штудируя SICP, писать код так как Вы?

Может потому что ты "штудируешь" SICP вместо "вникания"? =)

Или потому что я "играюсь" со схемой и читаю по ней различную информацию уже пару лет? (это я не к тому, что язык настолько сложный, что его нужно так долго изучать, наоборот, но чем больше практики, тем более свободно и уверено себя чувствуешь).
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779438
h869311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, а почему мне не рассказали о do:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#lang scheme/base

(define (test n)
  (do
      ((i 0 (+ i 1)))
    ((>= i n))
    (display i)
    (newline)
    )
  )

(test (read))
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779440
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311Благодарю. А вот теперь объясните мне, человеку, который самостоятельно, пользуясь только справочниками и экзамплами, без учителей, преподавателей и репетиторов, изучил Pascal, C, Java, почему, почему я не могу, штудируя SICP, писать код так как Вы?просто сикп - не учебник по схеме ))

поэтому все ок. штудируй сикп дальше.
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779450
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311Так, а почему мне не рассказали о do?

Потому что ты не спрашивал =)
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779453
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и корвин написал макрос, а мне, при "штудировании" сикп-а, только раз реально понадобился макрос - для реализации ленивых списков.
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779461
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h869311Так, а почему мне не рассказали о do:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#lang scheme/base

(define (test n)
  (do
      ((i 0 (+ i 1)))
    ((>= i n))
    (display i)
    (newline)
    )
  )

(test (read))

тебе еще много о чем не рассказали ))
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779478
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNну и корвин написал макрос, а мне, при "штудировании" сикп-а, только раз реально понадобился макрос - для реализации ленивых списков.
Интересно как бы ты написал while без макроса, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
(define (while test-proc body-proc)
  (let loop ()
    (when (test-proc)
      (body-proc)
      (loop))))

(define (test n)
  (define i 0)
  (while (lambda () (< i n))
    (lambda ()
      (set! i (+ i 1))
      (display i)
      (newline))))

(test 10)

? Ну можно конечно, но как-то неудобно =)

Да и в SICP не помешал бы, например, макрос для их объектной системы
...
Рейтинг: 0 / 0
Операторы Pascal/C/Java --> Scheme
    #37779484
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvin
Да и в SICP не помешал бы, например, макрос для их объектной системы

wile - пиисать не понадобилось.

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

другое дело ленивые списки, там без макросов невозможно было их реализовать.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Операторы Pascal/C/Java --> Scheme
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]