Являются ли переменные, связанные со свободными переменными, все еще свободными переменными?
Я смотрю на некоторые вопросы в своем учебнике о том, являются ли переменные свободными или связанными. Я не уверен в этих двух особенно.
Во-первых, я хочу убедиться, что понимаю концепцию свободного и связанного. Я совершенно уверен, что этот x является свободной переменной в следующем:
variable x is free in expression "x"
Я верю, что это правда, но я просто хочу убедиться.
Однако в этих двух вопросах я не совсем уверен.
(let x y (/ (+ 1 x) (let x 2 (+ x x))))
Для верхнего выражения x в первом подвыражении не связан (правильно?), но x во втором подвыражении привязан к 2, значит ли это, что x в отношении выражения в целом не связан?
Для нижнего выражения x связан с y, но y является свободной переменной (?). Так будет ли x свободным, потому что у свободен, или он связан, потому что x все еще ограничен у?
1 ответ
За
(/ (+ 1 x) (let x 2 (+ x x)))
, в первом подвыражении несвязано, но во втором подвыражении связано с2
, значит ли это, что в отношении выражения в целом нет привязки?
Да. Хотя я бы использовал терминологию «связан» или «свободен» только по отношению к конкретному выражению переменной, а не к имени. Как видите, неоднозначно, что означает "" .
Я бы сказал, что « все выражение имеет свободную переменную », что обычно вас волнует, когда вы пытаетесь вычислить выражение.
За
(let x y (/ (+ 1 x) (let x 2 (+ x x))))
, связан с , но является свободной переменной. Так будет ли он свободен, потому что свободен, или он связан, потому что все еще ограничен ?
The
x
связан (и может быть заменен).
y
бесплатно.