# why does this not halt?

**URL:** <https://forum.kx.com/t/why-does-this-not-halt/7696>\
**Category:** Community Support\
**Tags:** kdb-and-q\
**Created:** [April 19, 2012, 12:23pm UTC](https://forum.kx.com/t/why-does-this-not-halt/7696 "2012-04-19T12:23:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![effbiae](https://avatars.discourse-cdn.com/v4/letter/e/ecae2f/32.png) [@effbiae](https://forum.kx.com/u/effbiae)\
**Post date:** [April 19, 2012, 12:23pm UTC](https://forum.kx.com/t/why-does-this-not-halt/7696/1 "2012-04-19T12:23:00Z")

</div>

i:1;while[~i=3;{x::y}[`i;3]]

---

<div class="post-metadata">

**Author:** ![charlie1](https://avatars.discourse-cdn.com/v4/letter/c/ec9cab/32.png) [@charlie1](https://forum.kx.com/u/charlie1)\
**Post date:** [April 19, 2012, 1:14pm UTC](https://forum.kx.com/t/why-does-this-not-halt/7696/2 "2012-04-19T13:14:00Z")

</div>

because it is setting local x to 3.

inside a function, :: sets global when the local is not defined.

here x is implicit arg.

&nbsp;

use set instead
