Обновить
59

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

22
Подписчики
Отправить сообщение
hGetContents реализована через функцию с говорящим названием unsafeInterleaveIO, потому она таит в себе опасность
Т.е. с если смотреть на идеологическую сторону вопроса — нечего использовать unsafe функции.
Работать со строками через String не совсем принято, надо использовать text, а там есть как строгий readFile, так и ленивый.
И в ByteString есть тоже две версии.

Если мы читаем бинарные данные, надо использовать ByteString, если текстовые, то встаёт вопрос кодировки, и тут нужен ByteString+Text.

String — это на коленке наваять и посмотреть.
1. При использовании hGetContents файл закрывать не надо, он закроется сам, когда дочитается до конца, либо когда не останется ссылок.
2. Если вам надо прочесть и закрыть, используйте withFile и строгие функции чтения данных
3. "«заставить» Haskell вычислить переменную content до закрытия файла (если кто-то знает способ, напишите)"
Пишу:

length content `seq` do ...

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

seq вычисляет первый аргумент до WHNF, т.е., грубо говоря, до конструктора, аргументы конструктора не трогает. Поэтому если вычислить seq (Just undefined) 10, результат будет просто 10, без ошибки, так как то, что внутри — не трогается.

Если надо форсировать вычисление до конца, то можно использовать deepseq/force из Control.DeepSeq: (Just undefined) `deepseq` 10 === undefined.
И на функциональщине :)
Не хватает ещё одного пункта: теперь менеджер просит 5 членов команды добавить по 2 печи и по 4 рецепта.
Слева картинка разрастается, справа нет, но тут какой-то подвох.
Ну и вот такой рассказ ещё вспоминается.
Чтобы жить сейчас, кредит брать не обязательно. У вас какие-то сильно разные Вася и Петя, подгоняемые под результат «быть Васей хуже, чем быть Петей».
Есть множество историй, как люди ужимались-ужимались, а там глядь, молодость ушла, с друзьями уже не потусишь, интересы уже не те, порой и личную жизнь забывают устроить. И остаётся человек наедине со своими деньгами.
Оп, промазал. Ещё раз.

Подходил белый к негру, лежащему под пальмой:
— Что ты лежишь?
— А что?
— Ну взял бы, сорвал бананов, продал
— Зачем?
— Купил бы тачку, собрал бы ещё больше, продал
— Зачем?
— Нанял бы людей, они бы собирали, а ты б лежал и ничего не далал
— А я и так лежу
Если Вася по способностям сопоставим с Петей, то под сокращение не попадёт. Живёт и не напрягается уже сейчас.
Смысла же сравнивать с неравным соперником нет. Понятно, что лучше быть богатым и здоровым, чем бедным и больным.

Всё это напоминает анекдот:
Подходил белый к негру, лежащему под пальмой:
— Что ты лежишь?
— А что?
На мой вопрос предполагается ответ «да» или «нет».
Прошу прощения, показалось, что промазал комментарием и продублировал его вам.
Так всё-таки, я телепат, или вы не поняли не потому, что не телепат?
Ну я ж другой вопрос задал.

> Извините, я не телепат
Вы не телепат, поэтому не поняли.
Вы хотите сказать, что я телепат?
Я вам ещё один секрет открою.

Если, к примеру, пишут «стоянка в ВС запрещена» автоматически подразумевается, что она разрешена в остальные дни, хотя казалось бы. Кстати, именно о такой ситуации говорят «исключение подтверждает правило», которая звучит полностью как «исключение подтверждает правило в неисключенных ситуациях».

trikadin говорит о том, что из-за позиционирования себя как лучших, люди обращают избыточное внимание на их баги. Если они не хотят такого избыточного внимания, значит не должны позиционировать как лучшие.
Он не говорит про 0% багов, он говорит про то, что на небольшой процент багов будет избыточное внимание.
Второй пункт так, как вы его описали у себя, возможен и в С++.
#include <iostream>

int main()
{
   int i;
   std::cin >> i;
   if (int j = i > 0)
   {
      std::cout << "ok!";
   }
}


output: ok!

liveworkspace.org/code/123aa4598c57ec541046f61bc844de20
Я сейчас не хочу копаться в стандарте, но что значит «фактически»?
int& a = *(int*)NULL;

Вот тут есть разыменование. Обращения по нулевому адресу не происходит, да, но разыменование есть.
Разыменование нуля — UB.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность