-
Data: 2017-08-23 12:14:59
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> > Musiał. Musiał przeczytać o hd, tl, ttl, nil i null oraz wiedzieć, co robią
operatory v oraz &. I jeszcze parę innych rzeczy.
>
> Nie.
Urodził się z tą wiedzą? Naprawdę?
> Musiał nauczyć się języka, który potem zmieścił się w jego głowie.
To stwierdzenie dotyczy wszystkich języków. Mam wrażenie, że ideologizujesz i
dorabiasz mitologię do czegoś, co na to nie zasługuje.
> Ale przynajmniej będziesz miał szanse je wypowiedzieć bez dokumentacji.
Ale przecież operatory w Wolframie też można wypowiedzieć. Np. operator indeksowania
(to te podwójne nawiasy) nazywa się Part. I co ciekawe, jest to po prostu inna
składnia na to samo, więc a[[idx]] oraz Part[a,idx] to są te same operacje. Różnią
się tylko w pisowni. Podobnie, x+y to Plus[x,y]. Itd.
Oznacza to też, że każdy program w Wolframie można napisać nie używając żadnych
operatorów. Czyli jeśli nieczytelne operatory są dla Ciebie problemem i wolisz
samodokumentujący się zapis słowny, to w Wolframie możesz mieć tego nawet więcej, niż
w SmallTalku.
> Jednak w moim odczuciu linijka
>
> oddsEvens(x) = append(odds(x), evens(x))
>
> jest zdecydowanie czytelniejsza od
>
> oddsEvens[x_] := Join[x[[1 ;; ;; 2]], x[[2 ;; ;; 2]]]
No bez jaj. Naprawdę nie zrozumiałeś?
oddsEvens[x_] := Join[odds[x], evens[x]]
Teraz lepiej? Oczywiście, teraz potrzebujesz zdefiniować osobno czym jest odds[x_]
oraz evens[x_], np.:
odds[x_]:=x[[1 ;; ;; 2]]
evens[x_]:=x[[2 ;; ;; 2]]
albo nawet:
odds[x_]:=Part[x, 1 ;; ;; 2]
evens[x_]:=Part[x, 2 ;; ;; 2]
jeśli bardzo nie lubisz podwójnych nawiasów.
Ale uznałem, że taka "refaktoryzacja" jest tutaj przesadą, bo jeśli jakaś funkcja
pomocnicza jest implementowana jedną operacją, to nie ma po co takiej funkcji
definiować i można od razu rozwiązać właściwy (ten zadany) problem.
> Nie przekonał do czego?
A do czego miał przekonać? :-)
> Że język jest narzędziem do myślenia.
Każdy jest. Dlatego ten Twój przykład niczego szczególnego w tym zakresie nie
pokazał. Ot, dawno temu jakiś koleś napisał długi i skomplikowany program na
zrobienie prostej rzeczy. Dzisiaj proste rzeczy robi się krótkimi programami, dzięki
czemu można podnieść poziom i łatwiej/szybciej myśleć o rzeczach bardziej
skomplikowanych.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 23.08.17 13:42 g...@g...com
- 23.08.17 15:13 slawek
- 23.08.17 15:22 slawek
- 23.08.17 15:24 slawek
- 23.08.17 17:05 g...@g...com
- 23.08.17 17:18 g...@g...com
- 23.08.17 17:31 slawek
- 23.08.17 17:35 slawek
- 23.08.17 17:38 slawek
- 23.08.17 18:15 Piotr Chamera
- 23.08.17 20:52 AK
- 23.08.17 21:00 AK
- 23.08.17 22:02 AK
- 23.08.17 22:11 AK
- 23.08.17 22:17 AK
Najnowsze wątki z tej grupy
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
Najnowsze wątki
- 2025-04-07 Nagie zdjęcia nauczycieli
- 2025-04-07 czy też tak macie w swoich Wrocławiach?
- 2025-04-07 Czeladź => Specjalista ds. public relations <=
- 2025-04-07 Adam Bodnar przekracza kolejną granicę absurdu. Powoli się szykuje do nowej fuchy w TSUE
- 2025-04-07 Warszawa => Sales Executive / KAM <=
- 2025-04-07 Warszawa => Operations Support Systems (OSS) Team Leader <=
- 2025-04-07 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-04-07 Warszawa => Software Solution Architect <=
- 2025-04-07 China-Kraków => Key Account Manager IT <=
- 2025-04-07 Kraków => NMS System Administrator <=
- 2025-04-07 szczepionkowo
- 2025-04-07 Warszawa => Manual tester <=
- 2025-04-07 Warszawa => Administrator Systemów OSS <=
- 2025-04-07 Warszawa => Node.js / Fullstack Developer <=
- 2025-04-07 Położyłem dwa telefony obok siebie