Как стать автором
Обновить
14
0
Алексей Шмалько @rasen

Пользователь

Отправить сообщение
Тема бесточечной нотации вообще не раскрыта. Лучше было бы сделать пример каким-то таким:
countEven :: Integral a => [a] -> Int
countEven = length . filter even

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

Кстати, вариант с ByteString также обогнал 7 (getline + stoi) и 6a (getchar).
cin из третьего варианта с 100 миллионами справился за 11.97 секунды, а следующая строчка на Haskell — за 6.87. Вот так вот.

import qualified Data.ByteString.Lazy.Char8 as B
import Data.Maybe
import Data.List

main = B.interact $ B.pack . show . foldl' max 0 . map (fst . fromJust . B.readInt) . B.lines
Есть возвращение reference на локальную переменную.
3. Я в течении этого года отказался от gvim полностью, хотя раньше довольно яро отстаивал его использование. Причина довольно проста, наличие полноценного терминала под рукой перевешивает все плюсы gvim'а (из gvim не запустишь ncurses приложения и не сделаешь Ctrl-Z).

По поводу самого CSApprox. Я использую небезизвестную тему solarized, которая отлично ведет себя в консоле.

6. У меня тоже имеется парочка проектов на cmake, но эти шаги одноразовые при настройке проекта. После этого, вышеуказанной коммандой я говорю vim собирать из папки, где cmake создал makefile и всё работает просто чудестно.
Вы можете попробовать настроить опцию errorformat и научить Vim прыгать прямо на место с ошибкой.
И еще одно. Для константных строк execute это то же самое, что и просто написать комманду.

То есть, эта функция эквивалентна вашей.
function! MakeProject()
  silent update
  echo system("cd ..\\PROJECT_DIR && nmake")
endfunction
:make не просто компилирует проект, он еще и парсит вывод на ошибки компиляции и добавляет их в quickfix и можно прыгать по ним обычными :cnext и :cpre.

Кроме того, по сравнению с этим решением, экран не блокируется до того, как сборка полностью закончится, а плавно выплевывает весь вывод по ходу его поступления.

Ну и в моей системе, вывод потом всё равно разростается на весь экран и полностью закрывает собой код.

Хорошой альтернативой обычному make вижу только всякие background-make'и.
С макросами он вроде тоже не очень дружит.
YouCompleteMe тоже это делает. И вроде как должен делать лучше, так как учитывает контекст (не могу утверждать, так как не юзаю эту фичу).

Из не-clang альтернатив довольно хорошо работает cscope. Использовал его, чтобы копаться в исходниках Линукса.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность