Size: a a a

2020 August 29

L

Lupusregina[beta] in pro.js
Переслано от Lupusregina[beta]
function range(...args) {
 const rangeParseArgs = (s, e, d = 1) => {
   if ( e === undefined )
     [s, e] = [0, s]
   return [s, e, d]
 }
 function* rangeGen(...args) {
   let [s, e, d] = rangeParseArgs(...args)
   if ( s < e )
     for(; s < e; s += d)
       yield s
   else
     for(; s > e; s -= d)
       yield s
 }
 
 return new Proxy({
   [Symbol.iterator]: () => rangeGen(...args)
 }, {
   has(p, n) {
     const [s, e, d] = rangeParseArgs(...args)
     n = +n

     if ( s < e && (n >= e || n < s) ) return false
     if ( s >= e && (n <= e || n > s) ) return false
     if ( (n - s) % d ) return false

     return true
   },
 })
}
источник

S

Syntax Highlight Bot in pro.js
Lupusregina[beta]
Переслано от Lupusregina[beta]
function range(...args) {
 const rangeParseArgs = (s, e, d = 1) => {
   if ( e === undefined )
     [s, e] = [0, s]
   return [s, e, d]
 }
 function* rangeGen(...args) {
   let [s, e, d] = rangeParseArgs(...args)
   if ( s < e )
     for(; s < e; s += d)
       yield s
   else
     for(; s > e; s -= d)
       yield s
 }
 
 return new Proxy({
   [Symbol.iterator]: () => rangeGen(...args)
 }, {
   has(p, n) {
     const [s, e, d] = rangeParseArgs(...args)
     n = +n

     if ( s < e && (n >= e || n < s) ) return false
     if ( s >= e && (n <= e || n > s) ) return false
     if ( (n - s) % d ) return false

     return true
   },
 })
}
источник

L

Lupusregina[beta] in pro.js
Lupusregina[beta]
Переслано от Lupusregina[beta]
function range(...args) {
 const rangeParseArgs = (s, e, d = 1) => {
   if ( e === undefined )
     [s, e] = [0, s]
   return [s, e, d]
 }
 function* rangeGen(...args) {
   let [s, e, d] = rangeParseArgs(...args)
   if ( s < e )
     for(; s < e; s += d)
       yield s
   else
     for(; s > e; s -= d)
       yield s
 }
 
 return new Proxy({
   [Symbol.iterator]: () => rangeGen(...args)
 }, {
   has(p, n) {
     const [s, e, d] = rangeParseArgs(...args)
     n = +n

     if ( s < e && (n >= e || n < s) ) return false
     if ( s >= e && (n <= e || n > s) ) return false
     if ( (n - s) % d ) return false

     return true
   },
 })
}
вот мое полное решение
источник

PV

Peter V in pro.js
Lupusregina[beta]
Переслано от Lupusregina[beta]
function range(...args) {
 const rangeParseArgs = (s, e, d = 1) => {
   if ( e === undefined )
     [s, e] = [0, s]
   return [s, e, d]
 }
 function* rangeGen(...args) {
   let [s, e, d] = rangeParseArgs(...args)
   if ( s < e )
     for(; s < e; s += d)
       yield s
   else
     for(; s > e; s -= d)
       yield s
 }
 
 return new Proxy({
   [Symbol.iterator]: () => rangeGen(...args)
 }, {
   has(p, n) {
     const [s, e, d] = rangeParseArgs(...args)
     n = +n

     if ( s < e && (n >= e || n < s) ) return false
     if ( s >= e && (n <= e || n > s) ) return false
     if ( (n - s) % d ) return false

     return true
   },
 })
}
О, ты ещё и прокси написал, прикольно
источник

L

Lupusregina[beta] in pro.js
th.witness
Ты выполнял код?
да
источник

t

th.witness in pro.js
И range(5) обсирается?
источник

t

th.witness in pro.js
Иэх...
источник

t

th.witness in pro.js
Подожди, не обсирается.
источник

t

th.witness in pro.js
Я проверял :/
источник

L

Lupusregina[beta] in pro.js
th.witness
И range(5) обсирается?
источник

t

th.witness in pro.js
Двинь isPositive ниже первого условия.
источник

L

Lupusregina[beta] in pro.js
th.witness
Двинь isPositive ниже первого условия.
источник

t

th.witness in pro.js
Сработало?
источник

L

Lupusregina[beta] in pro.js
да
источник

L

Lupusregina[beta] in pro.js
th.witness
Сработало?
источник

L

Lupusregina[beta] in pro.js
но там должно быть 0,1,2,3,4
источник

t

th.witness in pro.js
источник

R

Roman in pro.js
источник

t

th.witness in pro.js
th.witness
function range(current, end, step = 1) {
 if(current && !end) {
   end = current;
   current = 0;
 }
 const isStepPositive = current < end;
 if(!isStepPositive) {
   step = -step
 }
 return {[Symbol.iterator]: () => ({
     next() {
       const previous = current;
       return (isStepPositive ? current < end : current > end)
           ? { value: (current = current + step, previous), done: false }
           : { done: true };
     }
   })
 }
}
Всë, догнал.
источник

R

Roman in pro.js
слушай а зачем?
источник