Jak se pozná senior

ava

Re:Jak se pozná senior
« Odpověď #225 kdy: 19. 12. 2016, 19:26:56 »

      println(
        (1 to 10).map(x ⇒
          (1 to 10).map(y ⇒ f"${x * y}%3d").mkString(" ")
        ).mkString("\n")
      )


gll

Re:Jak se pozná senior
« Odpověď #226 kdy: 19. 12. 2016, 20:33:49 »

for (1..10 X* 1..10).map(*.fmt('%3d')).rotor(10) {.fmt.say}


gll

Re:Jak se pozná senior
« Odpověď #227 kdy: 19. 12. 2016, 20:58:37 »
Super. fmt umí formátovat i dvojrozměrná pole.


say ((1..10) <<*>> (1..10,)).fmt('%3d', '\n')


nebo


say (1..10 X* 1..10).rotor(10).fmt("%3d", "\n")


Vaše zaostalé jazyky bez metaoperátorů se nechytají.

andy

Re:Jak se pozná senior
« Odpověď #228 kdy: 19. 12. 2016, 23:34:53 »
Citace od: gll kdy 19. 12. 2016, 20:58:37

say (1..10 X* 1..10).rotor(10).fmt("%3d", "\n")


Vaše zaostalé jazyky bez metaoperátorů se nechytají.

http://pointfree.io/ mi vygenerovalo tohle:

mapM_ putStrLn ((([1..10] >>=) . (printf "%4d" .) . (*)) <$> [1..10 :: Int])

Ale to už je cvičení na IQ testy - kdo pochopí, co to dělá.... (já bych to nepochopil).

gll

Re:Jak se pozná senior
« Odpověď #229 kdy: 20. 12. 2016, 00:53:30 »
Citace od: andy kdy 19. 12. 2016, 23:34:53
Citace od: gll kdy 19. 12. 2016, 20:58:37

say (1..10 X* 1..10).rotor(10).fmt("%3d", "\n")


Vaše zaostalé jazyky bez metaoperátorů se nechytají.

http://pointfree.io/ mi vygenerovalo tohle:

mapM_ putStrLn ((([1..10] >>=) . (printf "%4d" .) . (*)) <$> [1..10 :: Int])

Ale to už je cvičení na IQ testy - kdo pochopí, co to dělá.... (já bych to nepochopil).

Tak tohle je drsné. To bych nechtěl po někom zdědit. Perl 6 dokáže být stručnější a současně čitelnější bez použití složitých konceptů.


andy

Re:Jak se pozná senior
« Odpověď #230 kdy: 20. 12. 2016, 01:03:05 »
Citace od: gll kdy 20. 12. 2016, 00:53:30
Tak tohle je drsné. To bych nechtěl po někom zdědit. Perl 6 dokáže být stručnější a současně čitelnější bez použití složitých konceptů.
No vždyť jsem to taky musel dát do toho generátoru point-free syntaxe, sám bych to nevyrobil... normálně to vypadá takhle:
mapM_ putStrLn $ map (concatMap (printf "%4d")) [ map (*x) [1..10] | x <- [1..10 :: Int]]
A to už je v pohodě čitelné

spasitel

Re:Jak se pozná senior
« Odpověď #231 kdy: 20. 12. 2016, 09:07:23 »
tvl co za prasarny to pisete? to jako musi byt radost s vama pracovat, kdyz nekdo po vas musi cist tyhle sracky

Youda

Re:Jak se pozná senior
« Odpověď #232 kdy: 20. 12. 2016, 09:32:48 »
Citace od: spasitel kdy 20. 12. 2016, 09:07:23
tvl co za prasarny to pisete? to jako musi byt radost s vama pracovat, kdyz nekdo po vas musi cist tyhle sracky

Tyhlety contesty jsou urcity druh programatorske onanie.
Zapsat ulohu tak, ze vypada jako porucha na lince. Pak se placaj po zadech, jaci to jsou chlapaci, ze tem human obfuscator zpraskum po delsim zahloubani rozumi. A komu to prijde jako pakarna, ten je hlopa lama.
V enterprise svete jse videl i opacny konec programatorske onanie. Udelat tenhle ukol na OSGi containeru s vizualizaci na Eclipse RCP, interni prenos cislic pres ActiveMQ message bus. Tenhle pristup ake ma svije racio, kdyz pottebujes ohromit projektaka zakaznika, aby za generator nasobilky zaplatil pul mice

vera p.

Re:Jak se pozná senior
« Odpověď #233 kdy: 20. 12. 2016, 10:19:54 »
I am watching you ...


Tuxik

  • *****
  • 1 473
Re:Jak se pozná senior
« Odpověď #234 kdy: 20. 12. 2016, 10:44:30 »
Víte prd, jak se vypisuje násobilka...

+++++++++++++>
++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++
<...>+.<...>+.<...>+.<...>+.<...>+.<...>+.<...>+.<...>+.<...>+.<..>--------.-.<<.
>...>++.<...>++.<...>++.<...>++.<..>-------.-.<..>+.+.<..>-.+++.<..>---.+++++.<..>-----.+++++++.<..>------.--.<<.
>...>+++.<...>+++.<...>+++.<..>--------.+.<..>-.++++.<..>----.+++++++.<..>------.-.<..>+.++.<..>--.+++++.<..>----.---.<<.
>...>++++.<...>++++.<..>-------.+.<..>-.+++++.<..>----.--.<..>++.++.<..>--.++++++.<..>-----.-.<..>+.+++.<..>--.----.<<.
>...>+++++.<..>----.-.<..>+.++++.<..>---.--.<..>++.+++.<..>--.---.<..>+++.++.<..>-.----.<..>++++.+.<..>.-----.<<.
>...>++++++.<..>-----.+.<..>-.+++++++.<..>------.++.<..>-.---.<..>+++.+++.<..>--.--.<..>++.++++.<..>---.-.<..>++.------.<<.
>...>+++++++.<..>------.+++.<..>--.-.<..>+.++++++.<..>-----.++.<..>-.--.<..>++.+++++.<..>----.+.<..>.---.<..>++++.-------.<<.
>...>++++++++.<..>-------.+++++.<..>----.++.<..>-.-.<..>++.----.<..>++++.++++.<..>---.+.<..>.--.<..>+++.-----.<..>++++++.--------.<<.
>...>+++++++++.<..>--------.+++++++.<..>------.+++++.<..>----.+++.<..>--.+.<..>.-.<..>++.---.<..>++++.-----.<..>++++++.-------.<..>++++++++.---------.<<.
>..>+.-.<..>++.--.<..>+++.---.<..>++++.----.<..>+++++.-----.<..>++++++.------.<..>+++++++.-------.<..>++++++++.--------.<..>+++++++++.---------.<.>+.-..


Tohle je jazyk budoucnosti :P

edit, původně to bylo na jedné řádce, ale nevynikla ta krása :D

gll

Re:Jak se pozná senior
« Odpověď #235 kdy: 20. 12. 2016, 14:02:33 »
Citace od: andy kdy 20. 12. 2016, 01:03:05
Citace od: gll kdy 20. 12. 2016, 00:53:30
Tak tohle je drsné. To bych nechtěl po někom zdědit. Perl 6 dokáže být stručnější a současně čitelnější bez použití složitých konceptů.
No vždyť jsem to taky musel dát do toho generátoru point-free syntaxe, sám bych to nevyrobil... normálně to vypadá takhle:
mapM_ putStrLn $ map (concatMap (printf "%4d")) [ map (*x) [1..10] | x <- [1..10 :: Int]]
A to už je v pohodě čitelné

To je téměř stejně dlouhé jako řešení v c. Slušný jazyk by měl umožňovat vygenerování podobné tabulky jedinou vektorizovanou operací, pouze s použitím vestavěných funkcí a operátorů.


[ map (*x) [1..10] | x <- [1..10 :: Int]]


dělá to stejné co hyperoperátor <<*>> v perlu 6. Tisk tabulky je také hodně ukecaný a printf ani není součástí prelude. Haskell sucks.

javaman ()

Re:Jak se pozná senior
« Odpověď #236 kdy: 20. 12. 2016, 14:08:58 »
Pán bude zřejmě odborník ;D

Lol Phirae

Re:Jak se pozná senior
« Odpověď #237 kdy: 20. 12. 2016, 14:16:14 »
Citace od: Tuxik kdy 20. 12. 2016, 10:44:30
ale nevynikla ta krása :D

Mám u tebe pivo, skončilo na monitoru.  ;D ;D ;D

Rad

Re:Jak se pozná senior
« Odpověď #238 kdy: 20. 12. 2016, 14:34:02 »
Citace od: Tuxik kdy 19. 12. 2016, 06:40:15
No tak si to užijte v céčku, když jinak nedáte...
#include <stdio.h>
#include <string.h>

#define XSIZE 10
#define YSIZE 10

int main() {
    int number, x, y, max_len, cur_len, spaces;
    char number_str[10];
    snprintf (number_str, 10, "%d", XSIZE*YSIZE);
    max_len = strlen(number_str);
    for (y=1; y<=YSIZE; y++) {
        for (x=1; x<=XSIZE; x++) {
            number = x*y;
            snprintf (number_str, 10, "%d", number);
            cur_len = strlen(number_str);
            for (spaces=cur_len; spaces<=max_len; spaces++)
                printf ("%s", " ");
            printf ("%s", number_str);
        }
        printf ("%s", "\n");
    }
}


a return mas kde, kdyz uz to neni jako void?

gll

Re:Jak se pozná senior
« Odpověď #239 kdy: 20. 12. 2016, 15:13:36 »