「haskell」を含む日記 RSS

はてなキーワード: haskellとは

2020-04-19

[] [増補改訂関数プログラミング実践入門

コロナ自粛勉強中。以前買ったHaskell本を読み直している。落ち着いて読めば結構理解できる。

https://gihyo.jp/book/2016/978-4-7741-8390-9

この本の概要

現場の方々に向け,関数プログラミングエッセンスを厳選解説した入門書

関数型言語Haskellを用い,基本からJava 8/C/C++/Python/JavaScript/Rubyをはじめ各種命令言語との比較オススメの開発/設計テクニック等を平易に解説

改訂版ではGlasgow Haskell Compiler 8ならびに新機構のStackage/stackへの全面対応関数型言語由来の他言語機能解説章(第8章)の新設(Swift/Go/Rust/C#等の例も紹介)をはじめ実践開発に役立つ解説を増強し,関数型言語でも命令言語でも活かせる「使える基本」を凝縮しました。

こんな方におすすめ

2020-03-26

anond:20200326063303

BasicPHP から Haskell はさすがに無謀でしょ。

まずは PythonRuby か、Java系譜かな。

2020-03-21

anond:20200320111336

一度時間のある時にQiitaにまとめることとしよう。Qiitaデビ...

消えているのでここまでしか読めないけど、期待してますタグを見張ってるのでデビューなさったら気づくと思う。cabal 関連でわからないことがあったら、オレは Haskell できるけど Anond には基本張り付いないので、コミュニティ相談するといいよ。Slackhaskell-jp の questions スレッドいちばん人が多くて、やたら親切に教えてくれる。

ところでちょっと聞いてください。こないだ自室の iPad動画アプリ VLCエロ動画を観てたんです。ふと気になって、アプリの右上にある"RSSアイコンウインドウを重ねたようなアイコン"を押してみた。すると画面が真っ暗になり、突然、居間の大画面のテレビからエロ動画が流れ始めた😱

これが Chromecast と呼ばれる機能です。テレビBRAVIAにはこの機能が内蔵されているとのこと。同じLANに繋いだPCから音楽映像をワンタップで送ることができる。怖るべきことにこれはテレビスリープも解除するらしい。アラートもなく設定でオフにできないので、これを働かなくさせるにはテレビChromecast 機能無効化するか、同じLANに繋がないしかない。必死に調べて、対策を取りました(居間普段親が寝る部屋なので、たまたま昼間で、誰もいなくて、本当に良かった)。

この Chromecast を使ってスライドを表示できるのでは? と思って調べてました。

Chromecast の機材は4000円以下で買える。戦略はこうです。これをプロジェクター繋ぎ会議室に小規模の無線LANを構築します。発表者はスマホでそこに接続してもらい、Google スライドアプリにいれた発表資料Chromecast する。スマホは誰でも持っているし、これなら追加の費用も少なめで得体の知れないUSBを刺される怖れもなく安全に、トラブルも少ない発表環境が作れるかも。

2020-03-20

Haskell使いはレベルが高いという噂を流されHaskellスキル採用されたのにJavaを書かされる事例

2020-03-01

MtGプログラミング言語の色

このプログラミング言語MtGだと多分この色の組み合わせだろう。

みたいなのをまとめたら次のようになった(TIOBEのランキングトップ50)。

後半は知らない言語もあって怪しいが、おおよそこのようになると思われる。

※改めて見てみると何箇所か違和感があったので最初の版からちょっとだけ修正した。

順位プログラミング言語色の組み合わせ 内訳
1 Java アブザン 白黒緑
2 C ゴルガリ 黒緑
3 Pythonティムール緑青
4 C++ ジャンド 黒赤緑
5 C#バント 緑白青
6 Visual Basic .NETレズニア 緑白
7 JavaScript ボロス 赤白
8 PHPグルール 赤緑
9 SQL 無色
10Swift 4C(緑欠色) 白青黒赤
11Go ゴルガリ 黒緑
12Assembly language 黒単
13 R ゼット 青赤
14 D グリクシス 青黒赤
15 Ruby 赤単
16 MATLABゼット 青赤
17PL/SQL 無色
18 Delphi/Object Pascal アゾリウス 白青
19 Perlラクドス 黒赤
20Objective-C エスパー 白青黒
21 SAS アゾリウス 白青
22 Visual Basic 緑単
23Dart ジェスカイ 青赤白
24Scratch 白単
25 Scala 5C 白青黒赤緑
26 Groovy ナヤ 赤緑白
27 Transact-SQL 無色
28F# アゾリウス 白青
29 Rust マルドゥ 赤白黒
30 COBOL オルゾフ 白黒
31ABAP アゾリウス 白青
32 Lispシミック緑青
33Kotlin 4C(緑欠色) 白青黒赤
34 Logo 白単
35 RPG ディミーア 青黒
36 Lua 緑単
37 Fortran スゥルタイ緑青
38 PowerShell ジェスカイ 青赤白
39 Ada ディミーア 青黒
40 LabVIEW ディミーア 青黒
41 Erlang 緑単
42 Julia ゼット 青赤
43 ML 青単
44 Schemeシミック緑青
45 Haskellエスパー 白青黒
46 TypeScript ジェスカイ 青赤白
47 OpenEdge ABL アゾリウス 白青
48 LiveCode アゾリウス 白青
49 PostScript 無色
50 ActionScript ジェスカイ 青赤白

見返してみるとおおよそ次のルールに従って決めているような気がした。

緑の判定があやふやな気が若干しないでもない…

イメージ
レイヤ初心者向け
浮世離れベンダー
レイヤ、黒魔術
速い、先進
基盤、グル
無色 道具

2020-02-27

偏見に満ち溢れた俺の書いたことのあるプログラミング言語説明

1つにつき3行で書いた、言語の話は炎上しがちだから匿名で。

C言語:

現代だと電子機器プログラミングで使うよ!

Linuxとかサーバープログラムの内部で使われることが多いけど、

自分で手を加えることは少ないか安心して!

C++:

実行速度が超高速なのと複雑怪奇な構文が特徴だよ!

ゲームプログラミング動画編集ソフトといった高いパフォーマンス

求められるシステムで使われるイメージがあるから最初は近づかなくても良さそうだね!

C#:

Unityゲーム作る時に使うよ!

比較的書きやすくて勉強になるからオススメ出来るけど、

Microsoft にズブズブな印象が強いのがちょっと気になっちゃうね!

Java:

Androidアプリとかサーバーアプリ作るのに使えるよ!

勉強やすくて個人的には良いと思うけど、

現代だったら他の言語のほうが書きやすくてオススメかな??

Scala:

Javaの強化版で、サーバーアプリ作るのに使えるよ!

関数型っていう意味不明概念が混ざってるから

最初は近づかないほうが懸命だと思うよ!

Kotlin:

Javaの強化版で、Androidアプリとかサーバーアプリ作るのに使うよ!

もしAndroidアプリを作るなら最初にこれを学ぶと良いか???

とにかく書きやすいし書いて気持ちが良いし、名前可愛いね!

Objective-C:

iosアプリを作るのに使えるよ!

今はもっと書きやす言語があるから学ばなくても良いけど、

iosアプリ作ってる時にどうしても触らなきゃいけないときが来るんだよね...。

Swift:

iosアプリを作るのに使うよ!

もしもiosアプリ作りたいんだったら実質これしか選択肢は無いか覚悟してね?

書きやすい方だから身構えなくても大丈夫だけど、Macが無いと書けないから気をつけて!

PHP:

サーバーアプリ作るのに使えるよ!

個人的にはあんまりきじゃないかなって思うけど、

PHPお仕事はいっぱいあるからこれが出来ると飯が食えて嬉しいね

Ruby:

サーバーアプリ作るのに使えるよ!

学びやすいし物を作る時のスピードも早いから、

最初に学ぶ言語としては結構いかもしれないね

Python:

サーバーアプリとか人工知能(笑)とか作るのに使えるよ!

個人的には本当に好きじゃないけど、仕事人口も多いのが特徴だね!

おっぱいと語感が似ててなんだか幸せになってきたね!

JavaScript:

webアプリサーバーアプリを作るのに使えるよ!

環境を整えたり流行を追ったりするのがちょっとだけ面倒くさいけど、

webアプリ選択肢が他に無いから仕方なく使ってるよ!

Go:

サーバーアプリを作るのに使うよ!

Googleで開発された言語で、書いてるとドーパミンが出るよ!

僕が大好きな言語なんだけど残念ながら仕事は少ないね、本当に残念だ。

Lua:

ほとんど見かけないのに何故かたまに書かざるを得ない事がある言語だよ!

既存アプリケーションのプラグインを書く時に強制されたりするかな?

言語自体は単純だから、使う時が来たら覚えるぐらいでいいと思うよ!

Perl:

遥か昔に広く利用されていた言語だよ!

今学んでも古い会社しか使いみちが無いから、

令和に新しく学ぶ必要はないかもね!

BASIC:

プログラミング初心者が触りがちなイメージがあるよ!

きっと今でもどこかの世界では使われてるんだろうけど、

令和だったら他の言語も学びやす環境が整ってるから学ばなくて良いかもね!

Haskell:

正直に言うと何に使われてるのかイマイチからないんだ、ごめんね。

関数言語っていう(僕にとっては)難しい概念で、

自分を更に高めたくなったら調べてみるのも良いかもね?

2020-02-11

https://anond.hatelabo.jp/20200211192729

私もそうだ。
原因を考えてみると、書いている内に自分反論を思いついてしまうからというのがある。
反論される前に先回りして細かい条件を文章中に書こうとしてしまう。

私はプログラミング趣味にしている。
モダンプログラミング言語はやりたいことをやれるというだけではなく「制約」を記述できるようになっている場合がある。
C++ ならコンセプト (が導入される予定)、 Rust ならトレイト、 Haskell なら型クラス

自分がやろうとしていることの前提は何か、それを合理的に整理するのが癖になっている。
どうでもよい文章を書くにあたっても必要以上に但し書きを付けてしまう。

ま、別にそれが悪いことだとは思ってないけどね。

2019-11-22

特定言語しか使えない人って

プログラミングをどう理解してるんだろうね。

発言語は基本的PHPJavascript職場

大昔に作られたVB6製のツールを見てくれって頼まれた。

かにVBのわかる人がいないからって。

別に複雑なコードでもないし、PHPJSでも、まがりなりにもコードを書いてる人なら見ればわかるでしょって感じなんだけど。

スマホアプリ作るときも、JSならだれでもメンテナンスできるからってmonacaかいJSアプリが開発できるやつを採用したけど、Webとはアーキテクチャが違いすぎるから結局一部の人間にしか触れなくて、そんなマイナープラットフォーム採用した意味なかったし。

ちょっとしたツールを作るときも、Windowsアプリとして作ったほうが使い勝手いから、VB.NETかC#で作ろうって話になってもベテラン勢が猛反対して、無理やりPHPWebアプリとして作ることになったし。

サーバーで使うシェルスクリプト(.sh)も未経験の俺が、ネットチョコチョコとググって改修して、すごいびっくりされたことがあるけど、こっちからすればなんであんたらは触れないかっていう感じだし。(黒魔術的な書き方もあるらしいけどもちろんそんな書き方ではない)

Windowsサーバーで使う .BAT ファイルを書くときに、.BATファイル仕様では黒魔術的なテクニックを使わないと実現できない仕様だったからほかの言語しませんかって提案したけど、.BATでないとほかの人が保守できないからと却下

無理に.BATで書いて、逆に変なテクニックを駆使した保守性皆無のコードになってたし。

どの言語を使うかって話題になると、自分の使ってる言語以外を使うとアイデンティティ崩壊するかのような勢いで反対する。

Haskellみたいにまったく思想の違う言語ならともかく、似たような言語で、かつifとループ配列サブルーチン概念を把握していたら理解できるような書き方しかしてないコードでも、普段使ってない言語って時点で理解不能に陥るんだよな。

2019-11-20

キメる

Haskellコード書いてるとキメてる感じする。

Monadで書いてるときのあの感じね。

MDNAやったことないので、比較はできないけど。

2019-09-12

[] Haskell学習カリキュラム

  1. Haskell文法を学ぶ。
  2. 圏論を学ぶ。
  3. 圏論知識を基にして、再びHaskellを見直す。

Haskell文法書だけを読む

圏論Haskell対応関係

対象
関数

となっていることを、最初は知らなくてもOK

単にHaskell文法を学ぶだけで、背後にある考え方(圏論)は、まだ知らなくてもOK

圏論の基礎

圏論は元々数学で考案された考え方なので、直接的には代数やとトポロジー知識必要になるが、そこまでのレベルは求めていない。

とりあえず、プログラミングで使える程度の初歩的なレベル理解で十分。

圏論の具体的な応用例としてHaskellを見直す。

圏論知識を基にして、Haskell文法や仕組みを見直してみる。

注釈対象定義して、関数は射を定義していることが分かる。

ファンクター、アプリティブ、モナドで、手続き型の順次・反復・分岐表現できることが分かる。

2019-08-24

[] プログラミングHaskell 第2版

https://www.lambdanote.com/products/haskell

著者前書き

狙い

Haskell純粋関数型のプログラミング言語です。

Haskell を使うことで、明瞭簡潔にして正確なソフトウェアを素早く開発できます

本書の対象読者は、その Haskell を学ぼうとする現役のプログラマー大学生高校生などの幅広い方々です。

プログラミング経験がなくてもかまいません。

読者が何も知らないことを前提に、あらゆる概念についてゼロから説明していきます

そのために例題と練習問題も慎重に選びました。

題材のほとんどは、科学的な考え方になじみがあれば、16 才くらいでも十分に理解できるでしょう。

2019-05-25

Ruby学習コストの高い言語だと思う

一応あらかじめ釘を指しておくと、有名で実用的な言語に限った比較の話である

LL言語は楽勝」というのが一般的見解だと思うけど、よくよく考えてみたらRubyほど学習コストの高い言語も珍しいと思う

言語を(使うものとして)理解するには、「コアコンセプトを理解する」「構文を覚える」「組み込み/標準ライブラリに何が有るかを覚える」という要素があるように感じている(これは感じているだけなので事実ではないかもしれない)

Rubyプログラマプログラミング的なことについて楽をするための言語である(と思う)

たとえば素数判定ひとつするにしても、自力で高速な素数判定を実装するよりも、 require 'prime' して Integer#is_prime? するのが正しいという雰囲気がある

というよりも、自力一生懸命実装することが悪であるかのような雰囲気さえある

「こう書けば短い/楽なのに、どうしてそう書かないの?」という雰囲気が漂っている

Rubyではある実装について、

Ruby時間計算量やメモリ効率の話をするのはナンセンスなので、純粋に書き方のみを取り上げて優劣を語ることができる

そうなってくると、『ちゃんRubyが書ける』という状態になるには「組み込み/標準ライブラリに何が有るかを覚える」というステップが非常に大事になってくる

これが莫大なコストになっている。

「構文を覚える」コストはどの言語でもほぼ同じで、

「コアコンセプトを理解する」コストHaskellやRustではやや大きいかもしれないが理解するのはそう難しくない「Haskell入門して1ヶ月経つけどHaskellの何が特徴的なのかまったくわからん」などという人はいない

そう考えるとRubyは「組み込み/標準ライブラリに何が有るかを覚える」が非常に大事だし莫大な量である

Rubyに入門して数年経つけど、いまだに「えっこんなメソッドあったの」というのが時々ある

そのたびに自分ダメRubyistだなと思う

辛い

2019-04-04

anond:20190404131646

チューリング完全言語で、手続き型のパラダイムを含まない言語なんてそうそう無いだろ。

SQLとかのドメイン固有言語でならあるけど、それを「プログラミングを覚える」の文脈で扱うのは違うよな。

厳密にはHaskellとかは手続き型のパラダイム無しで構成されているけど、それでも手続きであるかのように見える仕掛けがあるし。

2019-03-28

Googleってとこにソフトウェアエンジニアで入ったんですけど

このエントリは中からも外から匿名な感じでお送りしております中の人を当てられたら1000ガバス

子供の頃とかはダイヤブロック好きでした。延々ぐちゃぐちゃロボットとか作ってた気がする。

高校まではプログラムとか全然ゲームやっててあーこういうゲーム自分でも作ってみてーなーみたいな。

大学は行きました。でも情報系じゃなくていわゆる理工系学部のどっかなぜなら情報系は偏差値が高かったから。大学在学中にサークルとか趣味プログラミング的なことを始めてあーやっぱこういうの楽しいよなーと思った。製品出てくるまでのライフタイムがほぼゼロで即結果が帰ってくるようなの。ほいでサークルゲームとか部内サービスかいろいろ作りました。学んだのはDirectXとかCPPとかHakellとかdotNetとか。あ、プログラミング系のバイトもやってました。覚えてない。CとかSQLかいじってた気がする。

院にも行きました。ここで本格的に情報系の職業に付きたいのでやっぱ箔は必要かなと思って情報系の院へ。特に後に仕事で直接役に立つ研究はしてなかった気がしますが、とにかく論建ての厳密性みたいなのはサンドバッグになりながら学べた気がします。英語は終始できませんでした。読んだ論文英語だったけど結局日本語しか書いてない。

さて就職活動ですが、Googleが応募してるらしいので応募しました。なんかこーあんまり低級なことはしてこなかったのでCとかわざわざ書いて練習した気はします。Haskellよりも100倍早かった。

面接の内容は言えませんけど(新卒でも中途でも同じ基準らしいっすよ)強いて言うなら「XXX(任意の基礎知識)?なんすかそれ?」(面接官に教えてもらう)「それはこういうことでっしゃろか?たぶんこー書いたら実装できます?」みたいな受け答えがウケたんじゃないかなーと思う。自分知識はボロカスですけど知恵には自信あります

まぁこうしばらく中で過ごしてみて思うのは、のたうち回る能力がまず必要で、次にしんどい時にカードをさっと挙げれる能力とかかなーと。困らないようにする能力と困った時になんとかする能力。結局どうしたって困るので。

やることは超クソ複雑な制約のもとでナイスシステムを組み上げることで、結局クソ複雑な実装になりますさらにその上で最適化したり既存機能を壊さないように新機能実装したり。

最近TOEIC受けてないけど900取れた覚えはない。ただTOEIC高得点の人の英語Youtubeで聞いてもアレな感じなことがあるのでTOEIC西海岸荒野で通じるかは知りません。

技術力がすごい人?そりゃいるんじゃないんですか?ただ僕は圧倒的に人を見る目がないのでなんかみんなすごいって言ってる人はすごいんだろーなーみたいな雑な。でも子供の頃じーちゃんちで泣かされた黒猫より怖い人にはまだあったことがありません。

2019-02-11

anond:20190211124957

癖があるとよく言われるRubyHaskell民とは比べられるしパワハラがどの程度か書いてけよ

2019-02-04

anond:20190204094712

いいもの流行るなら苦労はないとHaskellユーザーは思うであろう。

darks

2018-11-25

anond:20181125104351

haskell仕事ってどんなのがあるの?

パーサーとか弄ったことあるんだけど、実際の仕事となるとイマイチ想像がつかない

anond:20181125104039

ぶっちゃけ俺はずっと仕事HaskellJava書いてるけど、オススメ言語を聞かれたら無難にCと言うようにしている

Cで得することはないけど損することも無いか

2018-10-21

普通プログラマ関数型プログラミング絶対理解できない

実を言うと、普通プログラマオブジェクト指向以前のプログラミング理解できないんだけど、あれらはまだ手続き的な要素を内在してるから、そっちだけを受け取ることはできる。

それまで手続き的な要素+宣言的な要素だったプログラミングが、関数型プログラミングへと移行する時に手続き的な要素を切り捨てたのね。より純粋手法進化するために。

から、それまで手続き部分だけを受け取って喜んでた普通プログラマは急にわからなくなりヒステリーを起こした。

だけど、プログラミング上級者はオブジェクト指向以前にも宣言的な部分しか見てないか普通プログラマが何を騒いでるのかわからない。

普通プログラマって、部品化の凄いやつが関数型プログラミングになるとか勘違いしがちだけど(staticおじさんもその変奏)、全く質の違うもの

部品化って、重複コードをひすたらサブルーチンに括り出すようなもの副作用がある。

日本SIer(日立NEC富士通とか)って教養がない極東田舎者から副作用理解できない。すぐに「部品化」を持ち上げる。怖いんだろう。自分理解できないプログラミングが。モナドですら大多数は理解できないんだものあん教科書的なものですら。

とにかくアジアってIT後進国なのね。トップ日本ですらこうなのだから。"NTT"データHaskellレガシーシステム脈絡なく解析してホルホルしてるレベルもの

まず日本に生まれた時点で、関数型プログラミング理解するには圧倒的に不利。こんなこと言うと、「普通プログラマにもわかやす説明できるのが一流ダー」みたいな恥ずかしい駄々っ子が沸いてくるけど、プログラミングって歴史上一度も大衆相手にしてないので。

昔は研究機関IBMで、今はMSGAFA

OSS恩恵で、普通プログラマコンパイラ無料で使えるようにになっただけで泣いて喜ぶべき。

そしてあれは、将来のスポンサーコミッタ入り口としてやってるの。1000人に1人、将来コミュニティに貢献する人材いるかもしれないと信じて。

シリコンバレー住人にもOSSコミッタにもなれない普通プログラマはまあ、おこぼれで"文化的"コスプレしてQiitaでもやればいいんだと思うよ。

anond:20181021093430

2018-10-13

ふと昔を思い出して

今は全然関係ないことに従事していて、それが大して面白くもないのだが。

たまにはラズベリーパイを弄ったり組版ソフト面白ものを見つけて弄っている。

そんな私が何年か前に30日でできるOS本とDIrectX9入門の本を買って触っていた。昔話だ。

こういうのは、いわゆる御呪いオンパレードだ。

Cを最初にやるときののヘッダーファイル、あるいはwindowsプログラミングウィンドウを表示するときの様な「おまじない」だ。

ロクな説明もされないまま、写経しているうちにコードが増えて行き、なんかサンプルに毛が生えた様なものができて満足するが釈然としない。

分かった気がしない。

OpenGL/GLUTを後年マニュアルを参照しながら一生懸命やったときの方が理解できた気がしたし、オリジナリティのあるコードとなった。

やはりこういう根幹部分の知識悪戦苦闘しなければ、身につけないのだろうかと少し思う。

昨今大量に溢れるラッパーやフックを見て様々な機能が便利になったと感心する。

プログラマとして働いたことはないが、車輪の再発明学習以外においては悪だと学んできたので、それは大変結構だと思う。

ライブラリ再利用は良い。だが、その便利さがかえって学習者の成長を妨げるのではないか

OS本やDirectXを訳も分からず触っていた私の様なコピペキディ(又は写経坊主)が増えないことを願う。

(もう少し時間があれば、pychamかnvimのhaskell pluginが書きたい。)

2018-09-01

anond:20180901205732

Haskell で使ってる。

辞書型はフツウ Map k v のところを 関数の型 a → b になぞらえて k ↦ v と表記している。とても見やすい。エディタで書くときは k |-> v と書く。画面上ではいい感じのユニコード文字に置換されて見える。

ログイン ユーザー登録
ようこそ ゲスト さん