К сожалению, как вам там уже сказали, это не универсально. Unix cli - это полуавтомат, который может работать с ошибками. Строгая типизация - это штука, которая по определению работает без ошибков. А так, конечно, Haskell смог бы заменить bash.
> Всего машиночитаемого в обработке ошибок - единственный int, который относится не к куску данных, а ко всей программе.
Это было изящно решено товарищами из Digital в их операционных системах. В последней - OpenVMS оно выглядит так:
$ HELP/MESSAGE/LIBRARY=TOOLS:[MYPROJ]MYMESSAGES.MSGHLP$DATA ACCVIO %MSGHLP-F-MDFERR, error accessing Help Message database file "TOOLS:[MYPROJ] MYMESSAGES.MSGHLP$DATA" -RMS-E-FNF, file not found -SYSTEM-W-NOSUCHFILE, no such file
Ошибки - это строки с процентами и "-" в выводе. Т.е. сначала даётся машино-человеко-читаемый код %MSGHLP-F-MDFERR (подсистема-серьёзность-ошибка), после которого идёт нормальное описание.
no subject
К сожалению, как вам там уже сказали, это не универсально. Unix cli - это полуавтомат, который может работать с ошибками. Строгая типизация - это штука, которая по определению работает без ошибков. А так, конечно, Haskell смог бы заменить bash.
> Всего машиночитаемого в обработке ошибок - единственный int, который относится не к куску данных, а ко всей программе.
Это было изящно решено товарищами из Digital в их операционных системах. В последней - OpenVMS оно выглядит так:
$ HELP/MESSAGE/LIBRARY=TOOLS:[MYPROJ]MYMESSAGES.MSGHLP$DATA ACCVIO
%MSGHLP-F-MDFERR, error accessing Help Message database file "TOOLS:[MYPROJ]
MYMESSAGES.MSGHLP$DATA"
-RMS-E-FNF, file not found
-SYSTEM-W-NOSUCHFILE, no such file
Ошибки - это строки с процентами и "-" в выводе. Т.е. сначала даётся машино-человеко-читаемый код %MSGHLP-F-MDFERR (подсистема-серьёзность-ошибка), после которого идёт нормальное описание.