Help‐ノート:条件文

ページのコンテンツが他言語でサポートされていません。

端数処理に関するメモ[編集]

端数処理は今のところ round しかないので、他の整数化処理をする場合は一工夫要りそうです。とりあえず

{{#expr: 処理したい数 mod 十分に大きな数}}

とすることで、truncate になります。floor と ceil はどうすればいいんだろう。--cpro 2006年5月8日 (月) 13:15 (UTC)[返信]

floor(n) = {{#expr: (n - 0.5) round 0 }}
多分。ceil は無理ぽ? Tietew 2006年5月8日 (月) 13:28 (UTC)[返信]
ありがとうございます。でも0以下の整数だと {{#expr: (-1.0 - 0.5) round 0}} -> -2 みたいになっちゃいますね……
{{#expr: (n round 0) - ((n round 0) > n)}} みたいに泥臭いことしなきゃ駄目かしら。--cpro 2006年5月8日 (月) 15:11 (UTC) #exprがひとつ余分だったので修正--cpro 2006年5月8日 (月) 16:02 (UTC)[返信]

{{#expr: (n - 0.5) round 0 }}だと、nに0を入れると答えが-1になってしまうので、{{#expr: (n + ((n >= 0) - (n < 0)) * 0.5) round - ((n >= 0) - (n < 0))}}....ん?いいのかな? nを繰り上げるためには{{#expr:十分に大きな数 - (十分に大きな数 - n を切り捨て)}}かな?-- [Café] [Album] 2006年5月8日 (月) 15:47 (UTC)[返信]

floor(n) = {{#expr: {{#ifexpr:n>=0| n - 0.5 | {{#ifexpr: n = ( n round 0 ) | n | n - 0.5 }} }} round 0 }}
例:floor(-2) = -2
ceil(n) = {{#expr: {{#ifexpr:n>=0| {{#ifexpr: n = ( n round 0 ) | n | n + 0.5 }} | n + 0.5 }} round 0 }}
例:ceil(2)=2
こんな感じですかねー。--Zz2 2006年12月4日 (月) 08:09 (UTC)とても勘違いなので修正--Zz2 2006年12月4日 (月) 08:21 (UTC)[返信]

並べ替えについて[編集]

機能がアルファベット順に並べ替えられましたが、理由はなんだったでしょうか。これまでの順序が不合理だったでしょうか。これまでの順序には2つの理由がありました。

  • おおむね基本的な機能から発展的な機能へ
  • 英語版と同じ順序

このページは英語版の翻訳(独自の部分やあえて省いた部分もありますが)であり、つねに英語版を参照して更新しています。(m:Translation teams/ja#Requests 翻訳依頼をご覧ください。)英語版と順序が変わると、この更新が面倒になるのですが....-- 2006年12月4日 (月) 07:00 (UTC)[返信]

ん?英語版とはインターリンクから飛べる[1]のことですよね?ここはアルファベット順になっています。私は大きな勘違いをしていますか?--Zz2 2006年12月4日 (月) 07:53 (UTC)[返信]
いえ、すみません、私の方が大きな勘違いをしていたようです。(英語版の方で並べ替えがあったの、気づいていませんでした。)申し訳ありませんでした。-- 2006年12月4日 (月) 12:10 (UTC)[返信]

MediaWikiの仕様が変わったため、これらのテンプレートは動作していないようです。User:Ororon/Template:ExistsUser:Ororon/Template:If interwiki linkに動くテンプレートを作ってみたのですが、日本語版だけ置き換えるのもどうかと思いますので、どのような手順で、どこまで置き換えるべきかアドバイスいただけないでしょうか? --Ororon 2007年1月21日 (日) 18:23 (UTC)[返信]

英語版やmetaも見たのですが、Template:If interwiki linkについては案内がないですね。Template:Existsについては、使えなくなったとだけあります。ちょっと私もついて行けていないのですが、できたら状況を説明していただけませんか? 完全に動くものであれば、metaなども含めて置き換えてしまっていいと思います。-- 2007年1月22日 (月) 03:09 (UTC)[返信]
完全に動いているはずです。とりあえずja,meta,enだけ置き換えてみましょうか?--Ororon 2007年1月22日 (月) 04:20 (UTC)[返信]
そうですね。それはいいですが、私も含めて、状況が理解できていないと思いますので、簡単でもご説明いただけるとありがたいです。-- 2007年1月22日 (月) 22:46 (UTC)[返信]
状況という意味がよく分からないのですが、Existsの原理がMediaWikiの内部動作に依存していたためにいつの間にか動かなくなったようです。現在、Existsはページの有無に関わらず常に1を返してしまい、If interwiki linkは#ifexistの逆の動作になっています。私の実装も内部動作に依存しているといえば依存していますが、より安全かと思います。--Ororon 2007年1月24日 (水) 14:42 (UTC)[返信]
ja,meta,enとも置き換え、#ifexistの節も書き換えました。(ただしen:Template:Existsは保護されていたのでまだ変わっていません。)--Ororon 2007年1月24日 (水) 17:45 (UTC)[返信]

ありがとうございました。状況とは、その、MediaWikiの内部動作のどの辺が変わったのか、という意味でした。-- 2007年1月24日 (水) 22:51 (UTC)[返信]

以前#ifeqで[[Nonexistent]]と{{:Nonexistent}}が等しいと判定されていたのが今は違うと判定される、という以上のことは私も分かりません。おそらく#ifeqの引数としてそのようなものは想定されていない(いなかった)のでしょう。--Ororon 2007年1月25日 (木) 03:44 (UTC)[返信]
それでよくわかりました。{{:Nonexistent}}を[[Nonexistent]]に読み替える(?)タイミングと#ifeqをするタイミングとがずれたかなにかしたのでしょうね。たしかにこれまでのやり方は裏技的でしたから。ありがとうございました。-- 2007年1月25日 (木) 04:16 (UTC)[返信]

訳語[編集]

例えば通常「関数」と訳されるところの「function」が、どうもこのページでは「機能」と訳されているようですね。ちょっと普通とは異なる訳語選びではないでしょうか。しかしみなさん問題視されていないようなので、私だけ空気を読めていない気もするのですが。。Mulukhiyya 2008年1月27日 (日) 12:50 (UTC)[返信]

ものすごい亀レスですが、たしかに普通「関数」と訳すと思います。なおしたらまずいでしょうか。--Aotake 2008年4月27日 (日) 03:42 (UTC)[返信]
引数(+環境)に対して値が決まるという形式からして、やはり「関数」と言ってよく、「機能」はむしろおかしいと思うのです、が、しかし、今ちょっと眺めてみるに、今度は「条件文」という言葉との繋がりがどうなっちゃうか(あるいは、どうなっているのか)という疑問が…。英文の方を見ると、「parser function」というものの標準的な一式が「ParserFunctions」という固有名詞で表されているような感じなので、それを言い換えてしまっているのが混乱の元かなという気も…。どうでしょうね。Mulukhiyya 2008年5月25日 (日) 15:24 (UTC)[返信]
訳語変えました。あわせて、冒頭に説明文を追加してみました。メタにはmeta:Help:ParserFunctions という機能拡張の説明ページの他に、meta:Help:Parser function というページもあるみたいです。後者の内容は、Help:マジックワードでカバーできてるのかな?ややこしいですね。--Aotake 2008年6月8日 (日) 05:01 (UTC)[返信]