Я написал рубиновскую версию docdist8.py Эрика Демейна (MIT). Это доступно на github как docdist-v3.rb. Я столкнулся с двумя странными вида ситуаций:Ruby block комментарий и вопросы профиля
1) В функции inner_product есть блок комментарии:
Inner product between two vectors, where vectors
are repeated as dictionaries of (word, freq) pairs.
Example : inner_product({"and":3, "of":2, "the":5},
{"and":4, "in":1, "of":1, "this":2}) = 14.0
Если я обернуть это с = началом и = конец не существует никаких проблем, но если я оберните это с тройным двойные кавычки «» «я получаю ошибки следующим образом:
./docdist-v3.rb:71: syntax error, unexpected tIDENTIFIER, expecting kEND
Example : inner_product({"and":3, "of":2, "the":5},
^
./docdist-v3.rb:71: syntax error, unexpected tIDENTIFIER, expecting kEND
Example : inner_product({"and":3, "of":2, "the":5},
^
./docdist-v3.rb:72: syntax error, unexpected kIN, expecting kEND
... {"and":4, "in":1, "of":1, "this":2}) = 14.0
^
./docdist-v3.rb:72: syntax error, unexpected tIDENTIFIER, expecting kEND
... {"and":4, "in":1, "of":1, "this":2}) = 14.0
^
./docdist-v3.rb:72: syntax error, unexpected tIDENTIFIER, expecting kEND
..."and":4, "in":1, "of":1, "this":2}) = 14.0
^
существуют ли правила/разрешенные записи для„“», которые отличаются от = начать и = конец?
2) Когда я запускаю свою программу с помощью команды времени, она выполняется примерно через 0,3 секунды. Однако, если я стану требовать «профиль», время, которое требуется, становится очень высоким в сравнении - 30 секунд. Следовательно, я не получаю правильный вывод. Это не похоже на исходную версию Python, где для профиля требуется только предельное дополнительное время. Как получить тот же профиль в Ruby?
Примечание: Два файла, которые я использовал для запуска программы Ruby, - t2.bobsey.txt и t3.lewis.txt. Они доступны в http://ocw.mit.edu/ans7870/6/6.006/s08/lecturenotes/dd_data.htm
тройные двойные кавычки не обозначающие комментарий в Ruby. –