atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
IRCAM OpenMusic 支援
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
IRCAM OpenMusic 支援
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
IRCAM OpenMusic 支援
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • IRCAM OpenMusic 支援
  • 関数を呼び出す Apply, Funcall

IRCAM OpenMusic 支援

関数を呼び出す Apply, Funcall

最終更新:2012年01月23日 07:12

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
高階関数とラムダモードの使い方。

Apply関数

例

Apply関数は高階関数のうち最もシンプルなものの1つ。Apply関数は
  1. 関数
  2. 入力値のリスト
という2つの引数をとる。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

apply関数はラムダモードの+関数(om+関数ではない)からもらった変数4つ持ちの関数を、取った入力値リスト(1 2 3 4)に適用する。すると1+2+3+4になって10が返る。

関数名を使う

関数の入力はラムダモードにした関数の他にも、関数名を使うことができる。
処理が速くメモリ消費も少なくなるので、できるだけ関数名を使った方がよいかもしれない。
+関数のようなものの場合、引数の数を考える手間が省けるというメリットもある。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

インプットに関して

インプットの数は合ってないといけません、というお話。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

arithm-ser関数がラムダモードになっている。apply関数は変数3つ持ちのarithm-ser関数とインプット2つのリストを当てはめようとするが、合わないのでエラーを吐く。

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

この場合はapply関数がもらうのは変数2つの関数なので、インプット2つのリストと合わせることができる。


funcall関数

関数呼び出しの関数。apply関数と似ている。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

この2つの意味はほとんど同じである。
違いはapply関数が引数[1]にインプットをまとめたリストを入れるのに対して、funcallは引数[1]以降で1つ1つのインプットを指定する点。

funcall関数を用いて関数を呼び出す

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

rotate関数はリストの要素の順序を回す関数。デフォでは1つ回す。つまり2番目の要素から数え上げる。上図は数値のリスト(1 2 3)を入力する単純な例。
  1. funcall関数はラムダモードで出力されたrotate関数を(1 2 3)に適用する。
  2. ラムダモードでないrotate関数に直接(1 2 3)が入力されている。
この2つの計算結果は全く同じである。ではラムダモードの意義とは?実際の使われ方を見よう。

例:使う関数をランダムに選ぶ

複数の数値から1つを選ぶのと同じように、ラムダモードを使って複数の関数から1つを選ぶということができる。
permut-random関数とrotate関数のうちどちらかを選んでリストを処理させる例を見てみよう。
  • permut-random関数はリストの要素の順序をバラバラにする関数。
  • rotate関数はリストの要素の順序を1つ回す関数(前例を見よ)。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
  1. permut-random関数とrotate関数はラムダモード。
  2. listは2つの関数のリストを作る。(#<[permut-random]> #<[rotate]>)のような。
  3. nth-random関数が2つの関数のうちどちらかを選ぶ。
  4. funcall関数は選んだ関数を(3000 6000 7000)のリストに適用する。
  5. 今回はpermut-random関数が選ばれたのでリスト要素の順番がバラバラになる。


もしpermut-random関数とrotate関数がラムダモードでなければどうなるか。その場合list関数に対してそれぞれ関数ではなく値を返すので(nil nil)というリストになってしまう。
そうするとfuncallが「nilって何だよ!関数じゃねえじゃねえか!関数持ってこいよ!」と怒ってしまう。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。




タグ:

+ タグ編集
  • タグ:
タグの更新に失敗しました
エラーが発生しました。ページを更新してください。
ページを更新
「関数を呼び出す Apply, Funcall」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • funcall.png
IRCAM OpenMusic 支援
記事メニュー

メニュー

  • トップページ
    • ダウンロード
    • インストール
  • クイックスタート
    • セッションの開始
    • パッチの作成
    • ワークスペースでのパッチの操作
    • アプリケーションを作る (1)
    • アプリケーションを作る (2)
    • アプリケーションを作る (3)
    • オブジェクトの操作 (1)
    • オブジェクトの操作 (2)
    • 保存・終了
  • ユーザーマニュアル
  • 基本リファレンス
  • ライブラリリファレンス
    • Esquisse
    • LZ
    • OMAlea
    • OMChaos
    • OMClouds
    • Profile
    • RepMus
    • Situation


  • OpenMusicの歴史
  • 非公式Tutorial 概要
    • 01 note chord chord-seq
    • 02 repeat-n omloop
    • 03 random
    • 04 omif subpatch
    • 05 様々なファンクション
    • 06 バッハ平均律
    • 07 武満徹分析
    • 08 multi-seq voice poly
    • 09 ディアトニック即興
    • 10 メシアン様式即興
    • 11 文字列のファンクション
    • 12 ハイドンの名による
    • 13 リズム1
    • 14 リズム2ファーニホウ1
    • 15 リズム3ファーニホウ2
    • 16 リズム4ファーニホウ3


  • 掲示板


  • 落書き
  • 落書き20150822



ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. Esquisse
  2. autotransp
  3. リファレンス
  4. interpol-tab
  5. 非公式Tutorial 09 ディアトニック即興
  6. pstgenerate
  7. rossler
  8. remove-rests
  9. ライブラリリファレンス
  10. as->om
もっと見る
最近更新されたページ
  • 421日前

    トップページ
  • 973日前

    ユーザーマニュアル
  • 1185日前

    非公式Tutorial 03 random
  • 1190日前

    非公式Tutorial 12 ハイドンの名によるメヌエット
  • 1191日前

    非公式Tutorial 10 メシアン様式即興
  • 1191日前

    非公式Tutorial 09 ディアトニック即興
  • 1191日前

    非公式Tutorial 08 multi-seq voice poly
  • 1191日前

    非公式Tutorial 07 武満徹分析
  • 1910日前

    非公式Tutorial 14 リズム2ファーニホウ1
  • 1978日前

    掲示板
もっと見る
人気記事ランキング
  1. Esquisse
  2. autotransp
  3. リファレンス
  4. interpol-tab
  5. 非公式Tutorial 09 ディアトニック即興
  6. pstgenerate
  7. rossler
  8. remove-rests
  9. ライブラリリファレンス
  10. as->om
もっと見る
最近更新されたページ
  • 421日前

    トップページ
  • 973日前

    ユーザーマニュアル
  • 1185日前

    非公式Tutorial 03 random
  • 1190日前

    非公式Tutorial 12 ハイドンの名によるメヌエット
  • 1191日前

    非公式Tutorial 10 メシアン様式即興
  • 1191日前

    非公式Tutorial 09 ディアトニック即興
  • 1191日前

    非公式Tutorial 08 multi-seq voice poly
  • 1191日前

    非公式Tutorial 07 武満徹分析
  • 1910日前

    非公式Tutorial 14 リズム2ファーニホウ1
  • 1978日前

    掲示板
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. Shoboid RPまとめwiki
  2. テイルズオブ用語辞典
  3. トリコ総合データベース
  4. 固めまとめWiki
  5. ストグラFV まとめ@非公式wiki
  6. イナズマイレブンGO2 クロノ・ストーン ネップウ/ライメイ 攻略wiki
  7. みんなで決めるゲーム音楽ベスト100まとめwiki
  8. グランツーリスモWiki
  9. 魔法科高校の劣等生Wiki
  10. ゆっくり虐め専用Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. ストグラ まとめ @ウィキ
  4. 初音ミク Wiki
  5. 発車メロディーwiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. MADTOWNGTAまとめwiki
  3. まどドラ攻略wiki
  4. ちいぽけ攻略
  5. SurrounDead 攻略 (非公式wiki)
  6. Shoboid RPまとめwiki
  7. シュガードール情報まとめウィキ
  8. 戦国ダイナスティ攻略Wiki@ウィキ
  9. ソニックレーシング クロスワールド @ ウィキ
  10. 20XX @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. angler - MADTOWNGTAまとめwiki
  2. 参加者一覧 - MADTOWNGTAまとめwiki
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  5. SILENT HILL f - アニヲタWiki(仮)
  6. ギャプラン - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. XVI - MADTOWNGTAまとめwiki
  8. 模擬ドラフト結果 - おんJ模擬ドラフトまとめwiki
  9. 参加者一覧 - ストグラ まとめ @ウィキ
  10. 白狐 - MADTOWNGTAまとめwiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.