私はMATLABでプログラミングを学び、Rでいくつかの経験を積んでいます。私はMATLABのスコープの性質に混乱しています。MATLABのスコープとR
y <- 1
test <- function(x) {
return(x+y)
}
test(1)
Rの場合、2の値を返します。Rは、yの値が入力として渡されない場合、関数の外部をチェックします。しかし、MATLABで、
function[ output ] = test(x)
output=x+y;
y=1;
test(1)
はエラーに
Undefined function or variable 'y'
を与える誰もがスコープはI、Rでのプログラマは、それが動作するように期待するよりも、MATLABで異なる動作をする理由の背後にあるロジックを説明できますか?
https://www.mathworks.com/help/matlab/matlab_prog/check-variable-scope-in-editor.html –
をそれは言語がどのように設計されたかです。異なるプログラミング言語間でスコープが同じであることは期待できません。それが有効なR構文であれば、他のほとんどの言語とは異なります。スコープは広くTBHのように思えます。 – excaza
私は参照してください。あなたは、あなたが学んだ最初の言語から常に期待を引き出しますが、これが標準ではないことを知っていれば良いです。ありがとう – Lee88