Použití příkazu GOTO v jazyku C

Re:Použití příkazu GOTO v jazyku C
« Odpověď #45 kdy: 13. 10. 2019, 08:13:00 »
Citoval bych tady úryvek z knihy Modern C k použití goto pro error handling:

CitaceThe use of goto and similar jumps in programming languages has been subject to intensive debate, starting from an article by Dijkstra [1968]. You will still find people who seriously object to code as it is given here, but let us try to be pragmatic about that: code with or without goto can be ugly and hard to follow. The main idea is to have the "normal" control flow of the function be mainly undisturbed and to clearly mark changes to the control flow that only occur under exceptional circumstances with a goto or return.

Na straně 240-249 je pak o něco komplikovanější příklad, kde použití goto dává smysl...


BoneFlute

  • *****
  • 2 155
Re:Použití příkazu GOTO v jazyku C
« Odpověď #46 kdy: 14. 10. 2019, 21:57:19 »
Citace od: Idris kdy 21. 08. 2019, 09:15:58
Citace od: kozzi11 kdy 20. 08. 2019, 23:38:52
No to je důvod proč preferuji pure funkce. Protože vím že nemohou ovlivnit okolní stav jinak než je očekáváno (to znamená nijak).
Můžou měnit kontext.
Můžeš to rozvést?

Idris

  • *****
  • 2 286
Re:Použití příkazu GOTO v jazyku C
« Odpověď #47 kdy: 14. 10. 2019, 22:43:55 »
Citace od: BoneFlute kdy 14. 10. 2019, 21:57:19
Citace od: Idris kdy 21. 08. 2019, 09:15:58
Citace od: kozzi11 kdy 20. 08. 2019, 23:38:52
No to je důvod proč preferuji pure funkce. Protože vím že nemohou ovlivnit okolní stav jinak než je očekáváno (to znamená nijak).
Můžou měnit kontext.
Můžeš to rozvést?
To byla jen poznámka na okraj, že i pure funkce můžou efektivně měnit okolní kontext, když je typový systém dostatečně silný, záleží na tom, jak se řetězí. Celé FP je postavené na tom, že funkce jsou sice pure (což je omezení), ale typový systém je natolik silný, že lze v případě nutnosti měnit vnější kontext, čímž se ono "omezení" kompenzuje.