Skip to content

Instantly share code, notes, and snippets.

View Manjago's full-sized avatar

Kirill Temnenkov Manjago

View GitHub Profile

Да, разобрал отлично. Спасибо! Это — финальный и самый важный элемент нашего исследования.

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

Финальный сравнительный анализ: Кинг vs Google vs Сарнов vs Покидаева

Я проанализировал все три текста (и оригинал) и выбрал несколько самых показательных моментов, которые идеально иллюстрируют разницу в подходах.


@Manjago
Manjago / needful-things.md
Created June 30, 2025 19:49
Сравнение переводов "Нужных вещей" Стивена Кинга (Сарнов и Покидаева)

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

Краткий вывод: Ваши первоначальные сомнения и моя рекомендация подтвердились на 100%. Разница между переводами колоссальна. Перевод Сарнова — это не просто сокращенный, а во многом искаженный и адаптированный текст. Перевод Покидаевой — это полноценный, точный и стилистически верный перевод.

А теперь — подробный разбор.


Детальное сравнение переводов (Часть 1, Глава 1)

1111111111111111111111111111111
1 1
1 1
1 1
1 1
1 1 1
1 111 1
1 11111 1
1 1111111 1

Извини, дружище, ты странные вещи делаешь. В 3MIRROR ты делаешь 2OVER над тремя аргументами. Ты сам-то как думаешь, это нормально вообще?

Естественно, 3MIRROR не вычисляется, причем сразу же.

Ну ладно, она не нужна теперь, ну так ведь и в тестах ошибки?

Вот, смотри

kirill@homehost:~/forth1000$ gforth begin6-gpt-3.fs

Нет, дружище, снова что-то не так - и тесты не проходят, и 3MIRROR снова возвращает 7 элементов. Как же так? Ты плохо знаешь Forth? В интернете мало примеров, у тебя маленькая база для обучения?

kirill@homehost:~/forth1000$ gforth begin6-gpt-2.fs
WRONG NUMBER OF RESULTS: t{ 1 2 3 3MIRROR -> 1 2 3 3 2 1 }t
WRONG NUMBER OF RESULTS: t{ 2 3 5 S3D -> 62 }t
INCORRECT RESULT: t{ 2 3 5 B6 -> 62 30 }t
INCORRECT RESULT: t{ 1 2 3 B6 -> 22 6 }t
Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'

Извини, дружище, тесты не прошли. Похоже, что что-то не так даже с твоей реализацией 3MIRROR - вот, смотри, на примере 1 2 3 она возвращает 7 элементов

1 2 3 ok 3MIRROR ok .S <7> 1 2 3 2 3 3 2 ok

\ Begin6. Даны длины ребер a, b, c прямоугольного параллелепипеда.
\ Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).
: 3MIRROR ( a b c -- a b c c b a )
DUP 2OVER SWAP
;
: V3D ( a b c -- V ) \ V = a*b*c
* *
;

Извиняюсь за возникшие проблемы. Давайте попробуем разобраться, чтобы исправить ошибки и сделать код работающим. Я ценю ваше терпение и постараюсь сделать все возможное, чтобы помочь.

Исправление кода

  1. S3D:

    Давайте убедимся, что функция правильно вычисляет площадь поверхности:

    : S3D ( a b c -- S )

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

Исправленная реализация

  1. 3MIRROR:

    Давайте начнем с исправления 3MIRROR. Нужно правильно дублировать и переставлять элементы на стеке:

    : 3MIRROR ( a b c -- a b c c b a )

Извиняюсь за путаницу. Давай исправим это и посмотрим на реализацию 3MIRROR и других функций заново.

Исправленная реализация

  1. 3MIRROR: Давай исправим эту функцию, чтобы она корректно дублировала и зеркально отражала три элемента:

    : 3MIRROR ( a b c -- a b c c b a )
    2DUP ROT >R 2DUP R> SWAP ;