ermouth: (Default)
[personal profile] ermouth

C целью “потрогать” arrow-функции в ES6 написал вот парсер выражений в польской нотации, простенький. Работает в консоли FireFox или в io.js, больше нигде не работает.

var polish = (function () {
  var ops = "+-/*".split("").reduce((a,b)=>(a[b]=Function("x","return x[0]=x.shift()"+b+"x[0],x"),a),{});
  return (s)=>s.split(/\s+/).reduce((a,b)=>(ops[b]?ops[b](a):!isNaN(b)&&b!=''?(a.unshift(+b),a):a),[]);
})();

polish ("10 1 2 3 + + *") напишет [60].

Пожалуй, я уже хочу стрелки в js. До этого как-то они мне не родными для js казались – ну и зря.

Date: 2015-04-28 10:10 am (UTC)
From: [identity profile] morfizm.livejournal.com
Красиво, конечно, но OMFG по читаемости :)

Date: 2015-04-28 12:28 pm (UTC)
From: [identity profile] ermouth.livejournal.com
Это намеренно, я смотрел где стрелка подходит, а где уже надо полный синтаксис. Видимо, примерно такой сложности конструкции для стрелок предел. В несколько строк делать стрелки – это имхо фу.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 30th, 2025 03:35 am
Powered by Dreamwidth Studios