BinaryWrite по сравнению с WriteFile

Если GHC может сделать вывод (через FunDep), что c должно быть Term Int для = undefined

Не может. Если вы попытаетесь undefined :: Term Int, вы получите ту же ошибку переменной жесткого типа. Если вы используете типизированное отверстие = _undefined, вы увидите, что оно выводит undefined :: c. Я не знаю почему, но функциональная зависимость, кажется, используется только при применении eval к Lit, а не при его определении.

Как насчет этого?

class IsTerm a where
  type TermType a :: *
instance IsTerm Lit where
  type TermType Lit = Int
instance IsTerm a => IsTerm (Inc a) where
  type TermType (Inc a) = TermType a

class IsTerm a => Eval a   
  where eval :: a -> Term (TermType a) 

instance Eval Lit  where    
         eval (Lit i) = ToTerm i

-- needs UndecidableInstances
instance (Eval a, Num (TermType a)) => Eval (Inc a)  where    
         eval (Inc i) = ToTerm (fromTerm (eval i) + 1)
5
задан mhenrixon 17 April 2009 в 23:02
поделиться

2 ответа

Другое соображение - это файл, который записывается один раз или часто. Если вы часто пишете этот файл, то, возможно, вы захотите его кэшировать, поэтому Response.BinaryWrite наиболее целесообразен.

Если у вас он есть в памяти, я бы не записал его в файловую систему. и используйте Response.WriteFile .

4
ответ дан 14 December 2019 в 01:16
поделиться

Response.TransmitFile предпочтительнее, если у вас есть файл на диске и вы используете как минимум asp.net 2.0.

Response.WriteFile считывает весь файл в память, а затем записывает файл в ответ. TransmitFile «Записывает указанный файл напрямую в поток вывода ответа HTTP без буферизации его в памяти.»

5
ответ дан 14 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: