junky)この広告は、90日以上更新していないブログに表示しています。名前の衝突や汚染を防ぐためにモジュール分けをするようになっていきます。Schemeではmodule機能があるため、Nobukoでも利用していくことにしました。"util.scm"))モジュールの定義はこんな感じです。モジュール内では、主にimportとexportを利用します。importは他モジュールのexportされたシンボルをモジュールに対して束縛するための機能です。schemeの定義済みモジュールをimportすることになります。includeは外部のソースファイルへと展開される機能です。実装本体はincludeするようにすることをおすすめします。lst))))exportはモジュールの外部に公開するシンボルを設定する機能です。各手続き定義の先頭につけるなどすることもできます。好きな記法を利用すると良いと思われます。直接インタプリタで読み込んで使うことができます。'(1))コンパイル共有ライブラリにして読み込んで利用することもできます。拡張子がつくimport-libraryファイルを生成する必要があります。つけることで自動生成されます。生成し忘れに注意しましょう。(read))))(myapp)モジュールを環境にimportする際にprefixをつけることで、シンボルに接頭語をつけられるので、名前が重複する場合などに利用できます。renameなどの改名機能などモジュールの名前解決のための機能はいくつかあるため、柔軟に利用することができます。モジュールを使う上で注意すべきこと名前解決モジュールは空の環境からimportを行って、モジュールのボディの評価に必要な名前解決が全てできる必要があります。複雑なモジュールを実装する際にはimportを書くこと自体が大変になることもあります。単純な共有ライブラリを作っていると必要ないものであるため、moduleを使い始めた際に、意識し始めなければなりません。挙動は納得できるかと思いますが、moduleを使うために一手間いる印象があります。各手続きで内部定義をしすぎるマンモス手続きを書かないようにできそうです。後々、いままで書いていた手続きも綺麗にばらしていこうかと思います。今後はmoduleのprefixが使えるので、モジュール内の定義名自体を複雑化させたりすることは抑えようと思います。単一のソース内ではprefixがいらなくなるので、コードの可読性が上がっていくことを期待しています。»プロフィールid:bis83gb主にプログラミングについての日記です。最新記事move-toSW中のあれこれfluxusに触れてみました小さな非安全JSON生成器pandoricマクロ月別アーカイブはてなブログをはじめよう!bis83gbさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。