Monoid & CodeMancer
CodeMancer CodeMancer
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Монид. Π― Ρ‚ΡƒΡ‚ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», ΠΊΠ°ΠΊ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΈ понятный, ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π’Ρ‹ Π΄ΡƒΠΌΠ°Π» ΠΎ компромиссах ΠΌΠ΅ΠΆΠ΄Ρƒ абстракциСй ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ?
Monoid Monoid
Π‘Π»ΡƒΡˆΠ°ΠΉ, абстракция – это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΊΠ°ΠΊ Ρ‚Ρ‘ΠΏΠ»Ρ‹ΠΉ свитСр, Π½ΠΎ Ссли слишком ΡƒΠ²Π»Π΅Ρ‡ΡŒΡΡ ΡƒΠ·ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠ½ станСт Π½Π΅ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ΅Π½. Π“Π»Π°Π²Π½ΠΎΠ΅ – Ρ‚ΡΠΆΡ‘Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСбольшими, Ρ‡Ρ‘Ρ‚ΠΊΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° внСшний API Π΄Π΅Π»Π°Ρ‚ΡŒ Π»Π΅Π½ΠΈΠ²Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ понятно ΠΈ Π±Π΅Π· Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ². На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ я ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ядро ΠΊΠ°ΠΊ Ρ†Π΅Π»ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹ΠΉ интСрфСйс ΠΈ добавляю строгиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… вычислСний Π²Ρ€Π΅Π΄ΠΈΡ‚ ΠΊΡΡˆΡƒ. Π’Π°ΠΊ избСгаСшь ΠΈ бСсконСчной рСкурсии ΠΈΠ·-Π·Π° ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ абстракции, ΠΈ излишнСго выдСлСния памяти ΠΈΠ·-Π·Π° нСдостаточной.