LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

Да вот же

Да вот же:

http://www.cplusplus.com/reference/algorithm

Типа этого кода не существует, потому что

class InputIterator

class OutputIterator

и т.п. Так что без юзерского кода итератор не выберется, инстанцирования не произойдёт и компилятор ничего делать не будет. Но тоже автоматически же всё, why bother?

Ну и аналог твоего решения выше привел, да.

А покажи как ты запускаешь его в терминале и немного выхлопа от разбора /etc/passwd (или что у тебя там)?

Ты можешь привести только _библиотечный_ код, который _полностью_ решает задачу?

От {-# до import Control.Monad — флаги и импорты. От synA до synM включительно — это самое (unlessM можно не считать — можно либо обойтись без него, либо вынести в утилитарный модуль для монад, если такой в проекте уже есть). Дальше идёт более конкретный код для двух задач — BinaryListFile -> HT и /etc/passwd -> HT, причём написан он с небольшим decoupling — fromBinaryList делает BinaryListFile -> ? в любой callback, а synToHT — ? -> HT из чего-угодно с помощью synM. Потом написана конкретная структура для User и выбрана конкретная таблица MyHT с ними, далее написана финальная synBinaryUsersToHT : BynaryListFile -> HT, опять общая (но с расчётом на User) fromPasswd : /etc/passwd -> ? и финальная synPasswdToHT : /etc/passwd -> HT. То есть обе финальных функции a -> b получают как композиции a -> ? и ? -> b где ? -> b (b == HT у нас) это один приёмник выраженный через synM, а a -> ? (a == BinaryListFile или /etc/passwd) это генератор — по одному на каждую из двух задач. Потом тест финальных функций в main.

Теперь возьми код на CL — пакеты и импорты там не показаны, это самое — synchronize, та же структура user и (глобальная там) таблица. Потом /etc/passwd -> ? и сразу /etc/passwd -> HT через synchronize. Можно сделать как у меня — добавить ? -> HT через synchronize и потом уже «композицией» получить /etc/passwd -> HT. Либо у меня сделать как там, но ? -> HT реюзается ещё в примере binary, поэтому я показал как показал.

Исправление quasimoto, :

Да вот же

Да вот же:

http://www.cplusplus.com/reference/algorithm

Типа этого кода не существует, потому что

class InputIterator

class OutputIterator

и т.п. Так что без юзерского кода итератор не выберется, инстанцирования не произойдёт и компилятор ничего делать не будет. Но тоже автоматически же всё, why bother?

Ну и аналог твоего решения выше привел, да.

А покажи как ты запускаешь его в терминале и немного выхлопа от разбора /etc/passwd (или что у тебя там)?

Ты можешь привести только _библиотечный_ код, который _полностью_ решает задачу?

От {-# до import Control.Monad — флаги и импорты. От synA до synM включительно — это самое (unlessM можно не считать — можно либо обойтись без него, либо вынести в утилитарный модуль для монад, если такой в проекте уже есть). Дальше идёт более конкретный код для двух задач — BinaryListFile -> HT и /etc/passwd -> HT, причём написан он с небольшим decoupling — fromBinaryList делает BinaryListFile -> ? в любой callback, а synToHT — ? -> HT из чего-угодно с помощью synM. Потом написана конкретная структура для User и выбрана конкретная таблица MyHT с ними, далее написана финальная synBinaryUsersToHT : BynaryListFile -> HT, опять общая (но с расчётом на User) fromPasswd : /etc/passwd -> ? и финальная synPasswdToHT : /etc/passwd -> HT. То есть обе финальных функции a -> b получают как композиции a -> ? и ? -> b где ? -> b (b == HT у нас) это один приёмник выраженный через synM, а a -> ? (a == binaryListFile и /etc/passwd) это генератор — по одному на каждую из двух задач. Потом тест финальных функций в main.

Теперь возьми код на CL — пакеты и импорты там не показаны, это самое — synchromize, та же структура user и (глобальная там) таблица. Потом /etc/passwd -> ? и сразу /etc/passwd -> HT через synchromize. Можно сделать как у меня — добавить ? -> HT через synchromize и потом уже «композицией» получить /etc/passwd -> HT. Либо у меня сделать как там, но ? -> HT реюзается ещё в примере binary, поэтому я показал как показал.

Исходная версия quasimoto, :

Да вот же

Да вот же:

http://www.cplusplus.com/reference/algorithm

Типа этого кода не существует, потому что

class InputIterator

class OutputIterator

и т.п. Так что без юзерского кода итератор не выберется, инстанцирования не произойдёт и компилятор ничего делать не будет. Но тоже автоматически же всё, why bother?

Ну и аналог твоего решения выше привел, да.

А покажи как ты запускаешь его в терминале и немного выхлопа от разбора /etc/passwd (или что у тебя там)?

Ты можешь привести только _библиотечный_ код, который _полностью_ решает задачу?

От {-# до import Control.Monad — флаги и импорты. От synA до synM включительно — это самое (unlessM можно не считать — можно либо обойтись без него, либо вынести в утилитарный модуль для монад, если такой в проекте уже есть). Дальше идёт более конкретный код для двух задач — BinaryListFile -> HT и /etc/passwd -> HT, причём написан он с небольшим decoupling — fromBinaryList делает BinaryListFile -> ? в любой callback, а synToHT — ? -> HT из чего-угодно. Потом написана конкретная структура для User и выбрана конкретная таблица MyHT с ними, далее написана финальная synBinaryUsersToHT : BynaryListFile -> HT, опять общая (но с расчётом на User) fromPasswd : /etc/passwd -> ? и финальная synPasswdToHT : /etc/passwd -> HT. То есть обе финальных функции a -> b получают как композиции a -> ? и ? -> b где ? -> b (b == HT у нас) это один приёмник выраженный через synM, а a -> ? (a == binaryListFile и /etc/passwd) это генератор — по одному на каждую из двух задач. Потом тест финальных функций в main.

Теперь возьми код на CL — пакеты и импорты там не показаны, это самое — synchromize, та же структура user и (глобальная там) таблица. Потом /etc/passwd -> ? и сразу /etc/passwd -> HT через synchromize. Можно сделать как у меня — добавить ? -> HT через synchromize и потом уже «композицией» получить /etc/passwd -> HT. Либо у меня сделать как там, но ? -> HT реюзается ещё в примере binary, поэтому я показал как показал.