Известные проблемы с копированием кода из Mathematica на другие платформы?
Я только заметил, что если у вас это в MMA (8.0.1/win7-64):
![enter image description here]()
и вы скопируете его в SO (только ctrl-c ctrl-v), вы получите следующее:
(maxY - minY)/stepy/(maxX - minX)/stepx
который не является математически эквивалентным. Это должно быть так:
((maxY - minY)/stepy)/((maxX - minX)/stepx)
или это (InputForm
выше):
((maxY - minY)*stepx)/((maxX - minX)*stepy)
Это не вызвано внутренними элементами StackOverflow, так же как и с копией в NotePad.
Есть ли еще такие проблемы (особенно при работе с SO, но и вообще), о которых мы должны знать?
Что вызывает это, можно ли это зафиксировать на нашей стороне, а если нет, то что лучше всего работает?
Ответы
Ответ 1
Копирование кода Mathematica в группу Usenet Mathematica иногда рассеивает всевозможные странные символы в вашем коде (вы никогда не знали, когда это произойдет с вами). Обходной путь был бы следующим:
Последнее не работает в этом случае. Это все еще математически неверное преобразование, которое вы получите. Кажется, что работает первый.
Обновление
Если вы столкнулись с незнакомыми персонажами в сообщениях в новостной группе Mathematica (например, как в здесь), следующая функция будет декодировать ее (во всех случаях, когда Я тестировал).
translateQuotedPrintable[str_String] :=
StringReplace[str, {"=" ~~ c1:HexadecimalCharacter~~c2:HexadecimalCharacter :>
FromCharacterCode[FromDigits[c1 <> c2, 16], "Math1"],"=" ~~ EndOfLine -> ""}]
Просто вставьте все сообщения между кавычками в translateQuotedPrintable[" ... "]
, и сообщение будет очищено.
Для любопытных: кодировка, которую вы можете видеть в этих сообщениях usenet, называется Quoted Printable. Он используется для преобразования кодировок символов, которые отличаются от стандартного 7-разрядного ASCII, установленного в ASCII. Многие общие символы MMA, такие как символ правила, кодируются таким образом, если ранее не были преобразованы в ASCII на InputForm
cs. Чтобы декодировать код, нужно знать исходный набор символов, потому что QP дает только шестнадцатеричную позицию в наборе символов. В случае MMA это чаще всего будет Math1.
Ответ 2
Копирование примера на адрес электронной почты ТАКЖЕ завершается неудачно, и что - если оно переносится на другие примеры - кажется очень плохо для Mathgroup, SO и любого другого текстового дискуссионного форума. Скопировать как > Обычный текст и Копировать как > Форма ввода работает нормально, но я делал это легко, тысячи раз, и никогда не знал, что это может потерпеть неудачу таким образом, БЕЗ странных шестнадцатеричных символов.
Ответ 3
Это хороший пример того, как MMA настроен для решения математической двусмысленности, введенной при наборе текста. (+1)
Причина, по которой это не удается, заключается в том, что вы еще не оценили исходное выражение. Когда вы оцениваете, Mathematica правильно разбирает "/" между двумя кусками, и выход можно скопировать и вставить (правильно).
Возможно, WRI должен сделать так, чтобы "Копировать" заставляло механизм синтаксического анализа происходить до того, как клип-портировать выражение, т.е. какую-то "мягкую" оценку. Мысли?