Wpis z mikrobloga

@kais3r: Bo jest zabytkiem. Dawno się go powinno uśmiercić ani praktyczny język, ani też niewiele uczy bo większości języków są C/C++ podobne składniowo (python oprócz wcięć i nie licząc jakiś tam innych skryptowych języków)
  • Odpowiedz
@kais3r: Same bordo się wypowiadają : C Python to język dla bałaganiarzy, ale uczący też dobrego kombinowania, bo nie ma takiej wtyczki, której nie dałoby się w tym napisać. Ja ze swojej strony polecam Python, ale na dłuższą metę warto się skusić na coś innego, a to mieć w zanadrzu, bo się opłaca w tym tworzyć dodatki.
  • Odpowiedz
@kais3r: tak, choćby tylko po to, żeby poznać generatory. W niewielu językach są generatory, a pozwalają na oddzielenie od siebie generowania i przetwarzania danych bez kopiowania gigantycznych tablic czy sztuczek ze wskaźnikami. Niedługo będą też w javascripcie (słówko yield).

Poza tym to po prostu dobry, przemyślany język, świetnie nadaje się do skryptowania, oraz wbrew pozorom do obliczeń naukowych - http://www.scipy.org/topical-software.html#topic-guides-organized-by-scientific-field

Oczywiście "prawdziwi programiści" patrzą na ten język z góry, wolą walczyć
  • Odpowiedz
@tell_me_more: Już nie w tak niewielu:

- C++ (tutaj się to nazywa input iterators, ale funkcja taka sama)

- Ruby -

Enumerate
- Haskell - tu cały język jest "generatorem"

- Lua -

setmetatable
- C# -

yeld return ;
oraz

yield break;
- F# -

yield
- Common Lisp -

generator
Ale ogólnie całość zabawy z generatorami ma średni sens jeśli używamy high-order functions. Wtedy, tzw. generatory, są tak naprawdę
  • Odpowiedz
@Hauleth: w C++ nie zrobisz cooperative multithreading na input iterators. Chodzi o to, że w jednym wątku systemowym można odpalić dowolnie dużo funkcji działających "równocześnie" i pamiętających w międzyczasie pozycję i stan z poprzedniego "tyknięcia" ich funkcji AI - przydaje się szczególnie do pisania skryptów AI w grach.

Przykład http://code.activestate.com/recipes/466008-simple-cooperative-multitasking-using-generators/

Słówko yield tak naprawdę daje prawie takie same możliwości, co korytyny (to się tłumaczy w ogóle? coroutines) - a to bardzo
  • Odpowiedz
@tell_me_more: masz rację, nie zrobię, bo był bym głupcem to robiąc. Zrobił bym coś w stylu

async_map
, które zwraca kontener obietnic. A co do pisania AI to mi się wydaje, że są lepsze języki :)
  • Odpowiedz