2016-03-25 10 views
1

Varsa dosyayı açmaya veya yerine stdin kullanmaya çalışıyorum. HInFile birleşik hGetContents aramak istiyorum. Buraya geldim, ama nasıl çalışacağını bilmiyorum. dalları da ... <- ... ve let ... = ... olmayan ifadeler olmak zorundaHaskell - nasıl sağlandığını açık bir dosya veya nasıl kullanılır stdin yerine

main :: IO() 
main = do 
    args <- getArgs 
    let (inFileExists, inFile) = procArgs args 
    if inFileExists 
     then hInFile <- openFile inFile ReadMode --this gives me parse error 
     else let hInFile = stdin 
    input' <- hGetContents hInFile 
    print hInFile 
    return() 

cevap

4

if bir ifadedir. Onun yerine

return stdin diyor
hInFile <- if inFileExists 
      then openFile inFile ReadMode 
      else return stdin 

böyle bir şey yapsın "sadece geri stdin ver", tüm türleri olsa dışarı çalışması için ihtiyaç duyulan.

+0

Netleştirme için teşekkürler, işe yarıyor – Dracke

İlgili konular