Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

15:00 B-ひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) #16

Open
takezoux2 opened this issue Oct 18, 2020 · 6 comments
Assignees

Comments

@takezoux2
Copy link
Collaborator

takezoux2 commented Oct 18, 2020

ひどいScalaコード選手権

モデレーター: omiend
参加者: 任意
審査員: takezoux2

誰でも参加可能です。15時 TrackBに、ひどいコードを書いて来て下さい。
レギュレーションとしては、お題があるのでお題のどれかについてコンパイルが通り実行できるコードを持ち寄って貰えればOKです。

優勝者は、そのコードが来年のTシャツのデザインの一つになるかも!?(優勝商品はあるかどうかも未定です。もし実現しなくてもご容赦下さい。)

Please come by at 15:00 (JST) with the most horrible Scala code.
The regulation is that it compiles, runs, and it does something.

@eed3si9n eed3si9n changed the title 15:00-ひどいScalaコード選手権 15:00-ひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) Oct 18, 2020
@eed3si9n
Copy link
Member

@omiend
Copy link
Member

omiend commented Oct 18, 2020

15:00 〜 Track B にて審査会

@takezoux2 takezoux2 changed the title 15:00-ひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) 15:00 TrackBひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) Oct 18, 2020
@takezoux2 takezoux2 changed the title 15:00 TrackBひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) 15:00 B-ひどいScalaコード選手権 (The International Obfuscated Scala Code Contest) Oct 18, 2020
@omiend
Copy link
Member

omiend commented Oct 18, 2020

テーマ案を募集したく!
・Jsonをパースする
・Futureを使った処理
ほか?

@omiend omiend self-assigned this Oct 18, 2020
@omiend
Copy link
Member

omiend commented Oct 18, 2020

今回のテーマ:Jsonをパースする フリーテーマ

コンパイルの通る Jsonをパースする 処理を、ひどいScalaコードを書いて 15:00 Track B へお持ちください!

@omiend
Copy link
Member

omiend commented Oct 18, 2020

ScalaMatsuri 2020 ひどいScalaコード選手権
栄えある優勝は todokr - BizReach さんによる、「flatMap?知らない子ですね」に決定しました!
https://scastie.scala-lang.org/L0nC8TT6TVmf5aVo2zYfPA

@takezoux2
Copy link
Collaborator Author

takezoux2 commented Oct 18, 2020

一応保存のためコードを全部コピペ

// flatMap?知らない子ですね
// -------------------------------------------------------------

case class User(id: Int, name: String, bestFriendId: Option[Int])

def findUser(userId: Int): Option[User] = Some(User(userId, s"user$userId", Some(userId + 1)))

/** 親友の親友の親友を取得 */
def findBestFriendOfBestFriendOfBestFriend(userId: Int): Option[User] = 
  findUser(userId).map { user =>
    user.bestFriendId.map { bestFriend1Id =>
      findUser(bestFriend1Id).map { bestFriend2 =>
        bestFriend2.bestFriendId.map { bestFriend2Id =>
          findUser(bestFriend2Id)
        }.getOrElse(None)
      }.getOrElse(None)
    }.getOrElse(None)
  }.getOrElse(None)

findBestFriendOfBestFriendOfBestFriend(1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants