GSL Shell 学習:gotoで見た目の前方参照

2016-02-19 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、1、 0、0、0、0、0(40)で、換算ポイント 88pt 。
「化学業界」「硝子業界」「FM COCOLO」「e-radio」、
「グルコサミン」「Firefox」bg値変動のみ。
「Perl」「C言語」「Python」「FM青森」全く変化無し。
・-・ - -・

さて、本文。(これは Lua 学習)


先月(2016-01-10)の記事:
Lua 学習:文法に無いもの」で、
  ・・・・・
  ・・・・・
  つまり、goto文があるのダ。
  ・・・・・
  ・・・・・
と書いた。

そうすると、
“Python”の時(2014-03-25)に、書いた記事:
Python 学習:見た目の前方参照(gotoで)
と同様なコトができる。
(“Python”では、結局出来なくなったが。)


“Lua”純正(?)のコードでやってみた:
goto  Prologue
::Main::
--++++++++++++++++++++++++++++++++
print( f(2) ) -- 4 と出る。
--++++++++++++++++++++++++++++++++
os.exit(0) -- 忘れずに!
::Prologue::

function f(x) return x^2 end

goto Main
と、見た目の前方参照:
つまり、関数定義を後で行ってもOKですネ。


それでは、先日(2016-02-14)の記事:
GSL Shell 学習:“libgsl-0.dll”で十分だった
で書いた“GSL Shell”のコード:
local gsl = require'gsl'
ffi.cdef[[
gsl_vector* gsl_vector_uchar_alloc( int n );
void gsl_vector_uchar_set( gsl_vector* v, int i, int x );
unsigned char gsl_vector_uchar_get( gsl_vector* v, int i );
int gsl_vector_uchar_max_index( gsl_vector* v );
]]
ii = 5
v = gsl.gsl_vector_uchar_alloc(ii) -- define a new Vector

x = { 3, 1, 5.2, 3, 254 } -- Lua テーブル
for i = 0, ii-1 do
gsl.gsl_vector_uchar_set( v, i, x[i+1] ) -- 値設定 ← Luaテーブルから
end

i = gsl.gsl_vector_uchar_max_index( v ) -- 最大値の要素の添字(ゼロ・オリジン)
print( i, gsl.gsl_vector_uchar_get( v, i ) )
ではどうか?


“goto”文を使って書き直し:
goto  Prologue
::Main::
--++++++++++++++++++++++++++++++++
ii = 5
v = gsl.gsl_vector_uchar_alloc(ii)

x = { 3, 1, 5.2, 3, 254 }
for i = 0, ii-1 do
gsl.gsl_vector_uchar_set( v, i, x[i+1] )
end

i = gsl.gsl_vector_uchar_max_index( v )
print( i, gsl.gsl_vector_uchar_get( v, i ) )
--++++++++++++++++++++++++++++++++
os.exit(0)
::Prologue::

local gsl = require'gsl'
ffi.cdef[[
gsl_vector* gsl_vector_uchar_alloc( int n );
void gsl_vector_uchar_set( gsl_vector* v, int i, int x );
unsigned char gsl_vector_uchar_get( gsl_vector* v, int i );
int gsl_vector_uchar_max_index( gsl_vector* v );
]]

goto Main
ですね。


ダメでした???


5行目:
  v = gsl.gsl_vector_uchar_alloc(ii)
に於いて、
  global 'gsl' は“a nil value”
とエラーになった!!!


つまり、
“goto”で飛んだ先に於いて、

  local gsl = require'gsl'

とすると、
もう一度飛んだ先では見えなくなる???


確かに、“local”をハズして、

  gsl = require'gsl'

としたら出来た。


そう云うことなんですネ。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160114
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク