In F# (|>) is important because of the left-to-right typechecking. For example: List.map (fun x -> x.Value) xs generally won't typecheck, because even if the type of xs is known, the type of the argument x to the lambda isn't known at the time the typechecker sees it, so it doesn't know how to resolve x.Value.
現役コーダーに質問。 (スコア:0)
1 |> print
print(1)
「|>」なんて今まで書いたり見たりしたコードにないんですが、使うんですか?
使うなら何言語ですか?
class::expressionのように::はありますが。
あとprint(1)ではなくてprint('1');では?
Re: (スコア:0)
F#に始まり、Haskellなどでも採用されていますね。
記号は | だけになりますが方向性が似ているパイプ(ライン)は今も多数のOSのシェルスクリプト上で現役だと思いますし。
1 と '1' についてはそれを質問するほど基礎的な素養がない人に説明するには長くなりますし、
その目的でこの場所を使うことは不適切だと思いますので、ご自分でECMAScriptの入門書なりを買って勉強してください。
Re: (スコア:0)
ふ〜ん ocamlじゃないんだ
Re: (スコア:0)
In F# (|>) is important because of the left-to-right typechecking. For example:
List.map (fun x -> x.Value) xs
generally won't typecheck, because even if the type of xs is known, the type of the argument x to the lambda isn't known at the time the typechecker sees it, so it doesn't know how to resolve x.Value.
Re: (スコア:0)
パイプライン演算子は、F#, Elixir, Rなどにあります。
言語によるとしか言えませんが、概ね、print(1)とprint('1')はどちらもありえて、意味が異なるというのが多いのではないかと思います。
JavaScript例でいえば、
print('1')に等価なのは '1' |> print になるでしょう。
Re: (スコア:0)
あー、やっぱり「F#, Elixir, R」系なのですね。普段のC業務では使わないや。
あと1は数字で、'1'は文字列だと個人的に思ってます。
Re: (スコア:0)
C言語だと、'1'だと文字列ではなく、文字では?
文字列は"1"。
わりかしシングルとダブルで意味合いが違ったような。
もう10年近く前の知識で言ってますが。
Re: (スコア:0)
print(1+1)とprint("1+1")の説明はちょっとね…
JavaScript例でいえば、printを自分で定義しないで実行すると多くのブラウザでwindow.printが呼び出されます。ちなみにこの関数は引数を無視します。なんでJavaScriptの場合print(1+1)とprint("1+1")は等価っつーかprint()ととうk…
#言語によるとしか言えませんが"1"と'1'はどちらもありえて、意味が異なるというのが少なくないのではないかと思います。しかし意味が同じという場合も少なくないので注意が必要であると。
Re: (スコア:0)
まぁ言語によりますが、JSなら自分だとこう書きますね。JSにprint関数があることを知らなかった。C系でprint/printfを使うけど。
document.write('1');
Re: (スコア:0)
JSにはたいていあるけどECMAScriptの規格上存在しないのでそんな関数はねぇとかいわれるかもしれない。あとブラウザというかエンジンによって挙動が違うかもしれない。大抵はウェブページをプリントするプロンプトを表示する関数になっているようだ。ということはウェブブラウザ以外だと意味がない……?
print(1+1),print("1+1"),print()を、俺は見下さん!
すべて平等に価値がない!
Re:現役コーダーに質問。 (スコア:2)
オフトピ気味なので突っ込むのも野暮なのでしょうが、
これはDOMの実装で、Javascriptの実装ではないです。
これもDOMの実装で、Javascriptの実装ではないです。
Javascriptがブラウザ上で実行される際、グローバル変数/関数をwindowクラスのメンバとして実行する、という仕様があります。そのせいで混乱を招いているのだと思います。
リンク先のブログのprint()は、window.print()のことではないです。コンソール系だと標準出力を吐く実装として、print()そのものがあるんです。
Re: (スコア:0)
> JavaScriptの場合print(1+1)とprint("1+1")は等価
ちょっとFirefoxのDeveloperTools開いて試してみたけど・・・
print('1+1')
"1+1"
print(1+1)
"2"
になったよ
Re: (スコア:0)
ちなみに Google Chromeだと印刷プレビューになる