iterator of libchise (Re: libchise on Mac OS X)

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2003年 10月 9日 (木) 17:16:53 JST


浦島フォローで申し訳ないのですが、

>>>>> In [chise-ja : No.00202] 
>>>>>	"江渡さん" = Kouichirou Eto <2003 @ eto.com> wrote:

江渡さん> なんとなくlibchiseへの要望とか書いてもいいでしょうか。
江渡さん> char_attribute_alist に相当する動作が入っているとうれしいで
江渡さん> す。

の前段階として、char-attribute-list 相当を作ってます(大体できました
(現実逃避活動の成果です(^_^;;;))。

今の実装は

int
chise_ds_char_feature_name_iterate (CHISE_DS *ds,
				    int (*func) (CHISE_DS *ds,
						 unsigned char *name))

という界面をしてます。func の第2引数に素性名が渡ります。また、func が
0 じゃない値を返すと、その時点で繰り返しを中断します。


別解としては、

	fnset = 素性名集合オブジェクトをopen (ds);

	while (素性名集合から素性名をget (fnset, buf) != NULL)
	  {
		作業 ...
	  }
	素性名集合オブジェクトをclose (fnset);

というのもあると思います。


char-attribute-alist 相当に関しても、

int
chise_ds_char_feature_iterate (CHISE_DS *ds, CHISE_Char_ID cid,
			       int (*func) (CHISE_Char_ID cid,
					    CHISE_Feature feature,
					    CHISE_Value *valdatum))

みたいな感じで良いでしょうか?

;; うーむ、chise_char_feature_value_iterate と紛らわしい。(^_^;;

ちなみに、char-attribute-alist 相当の場合、別解スタイルはちょっと実装
が難しいかも。


ところで、これを書いてて思ったんですが、iterator 系の名前、

	対象物_foreach_操作対象

に変えても良いですか?

この場合、例えば、chise_char_feature_value_iterate は

	chise_feature_foreach_char_with_value

に、char-attribute-alist 相当は

	chise_ds_char_foreach_feature_with_value

に、char-attribute-list 相当は

	chise_ds_foreach_feature_name

という感じになります。


ご意見お待ちしてます。
-- 
===『幾千億の分子に分かれても ========================================
     決して忘れない。    
     この宇宙が終るまで』              守岡 知彦 (MORIOKA Tomohiko)
====================== Email: <tomo @ kanji.zinbun.kyoto-u.ac.jp> ======




More information about the CHISE-ja mailing list