タグ

utilityに関するkiyo_hikoのブックマーク (3)

  • CLHS: Function MEMBER, MEMBER-IF, MEMBER-IF-NOT

    kiyo_hiko
    kiyo_hiko 2020/10/20
    (member x xy)って(or (mapcar #'(lambda (elt) (eql x elt)) xs))と等価な何かっぽいと思うけど、(and (mapcar #'(lambda (elt) (eql x elt)) xs))相当を一発で評価するユーティリティってないのかな。every #'eqlするしかないのかな。
  • UWSCの共通処理は、別ファイルにクラス化しておくと非常に便利ですよ。

    共通処理は別ファイルに部品化しておくと、実装やメンテナンスが効率化できます。 UWSCでスクリプトを作成すると「.UWS」形式のファイルを作成するかと思います。 通常は、目的とする全ての処理をこの「.UWS」のファイルに記述します。 なので、「1つの目的・操作」=「1つのUWSファイル」となりがちです。 しかし、 「他のスクリプトで書いた処理を、もう一回書くのは面倒だなぁ・・・」 「共通のPROCEDUREを別ファイルにしておきたいなぁ・・・」 「処理を修正したいけど、全部のスクリプトをメンテするのは面倒・・・」 なんて思うことはないでしょうか? UWSCでは「CLASS~ENDCLASS」の記述をすることでクラス化し、スクリプトを意味のあるグループにまとめることができます。 これを利用することで、効率的にスクリプトを作成することができます。 例えば、ポイントサイト関連などのスクリプトを作

    UWSCの共通処理は、別ファイルにクラス化しておくと非常に便利ですよ。
  • [Swift] 一度だけ実行したい処理をクロージャでスマートに書く - Qiita

    はじめに ViewControllerにおいて、viewWillAppearまたはviewDidLayoutSubviewsなどのタイミングで一度だけ実行したい処理をたまに書きたいことがあると思います。(viewDidLoadに記述できるのであればもちろんその方がスマートですが) dispatch_once は使えない GCDのdispatch_onceはマルチスレッドを考慮したシングルトン生成のパターンによく利用されますが、アドレスを指定した処理であるため静的に配置される変数(static変数)に対してしか正しく処理できません。(アプリケーション実行中に当に一度だけ実行したいケースにしか利用できない) 言い換えると、今回のようなViewControllerが生成された後で一度だけ処理したい、というようなケースには対応できません。 シンプルに書くと 以下の様な処理になるでしょうか? va

    [Swift] 一度だけ実行したい処理をクロージャでスマートに書く - Qiita
    kiyo_hiko
    kiyo_hiko 2019/11/18
    CLでも似たような機能がほしいと思って書いてみたけどなんかうまく動かない。(defun one-off (fun) (let ((expired nil)) #'(lambda (args) (if expired (id args) (progn (setf expired t) (apply fun args))))))
  • 1