押せ
fn main() {
println!("hello, world");
}
/* USAGE: Declare the following script after prism.js and specify language-tlsplus. | |
<script src="prism.js"></script> | |
<script>Prism.languages.tlaplus={...}</script> | |
<pre><code class="language-tlsplus">...</code></pre> | |
*/ | |
Prism.languages.tlaplus={comment:[{pattern:/\(\*[\s\S]*?(?:\*\)|$)/,lookbehind:!0,greedy:!0},{pattern:/\\\*.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:ACTION|ASSUME|ASSUMPTION|AXIOM|BOOLEAN|BY|CASE|CHOOSE|CONSTANT|CONSTANTS|COROLLARY|DEF|DEFINE|DEFS|DOMAIN|ELSE|ENABLED|EXCEPT|EXTENDS|HAVE|HIDE|IF|IN|INSTANCE|LAMBDA|LEMMA|LET|LOCAL|MODULE|NEW|OBVIOUS|OMITTED|ONLY|OTHER|PICK|PROOF|PROPOSITION|PROVE|QED|RECURSIVE|STATE|STRING|SUBSET|SUFFICES|TAKE|TEMPORAL|THEN|THEOREM|UNCHANGED|UNION|USE|VARIABLE|VARIABLES|WITH|WITNESS)\b/,boolean:/\b(?:TRUE|FALSE)\b/,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,prolog:/(====+|----+)/,rule:{pattern:/\b\w+(\(.*?\)|\[.*?\])?\s*==/,inside:{atrule:/\b\w+(\(.*?\)|\[.*?\])?/}},symbol:/\ |
import random | |
import math | |
import copy | |
NUMBER_OF_CANDIDATES = 100 | |
NUMBER_OF_VOTERS = 25 | |
TOTAL_STAKES = 100000 | |
TOTAL_REWARDS_FOR_ROUND = 100 | |
NUMBER_OF_ELECTIONS = 10000 |
fn main() {
println!("hello, world");
}
local hmgetall = function(...) | |
if next(arg) == nil then return [] end | |
local result = [] | |
for j, key in ipairs(arg) do | |
local bulk = redis.call('HGETALL', key) | |
local hash = {} | |
local nextfield | |
for i, v in ipairs(bulk) do | |
if i % 2 == 1 then | |
nextkey = v |
Julia の多重ディスパッチは OO で言うところの多態化となるか? についてのポエム。
target version: Julia 0.6.2
普段は Scala, Java, Python, Ruby あたりを使っていますが、Julia はまだ言語仕様を見ながらコードを書いている状況なので、Julia を使いこなせる方が「えっそれをするためにこういう機能があるよ?」(知ってるかどうか問題だったオチ) であれば話は終わります。多分、それ以上読み進めるのは時間の無駄です。
Julia の多重ディスパッチは実行時の型から対応する関数 (振る舞い) を推定して選択するが、関数を使用する時点で全ての可能性のある型について自明でなければならない制約があります。
package biz.moyo.lab.experiment.gifanime; | |
import java.awt.*; | |
import java.awt.image.*; | |
import java.io.*; | |
import java.util.*; | |
import javax.imageio.*; | |
import javax.imageio.metadata.*; | |
import javax.imageio.stream.*; | |
public class GIFPlainText { | |
public static void main(String[] args) throws IOException{ |
STOPM は中継サーバを介してクライアント間での非同期メッセージパッシング用に設計されたシンプルで相互運用可能なプロトコルです。 それらのクライアントとサーバ間で渡されるテキストベースメッセージのワイヤーフォーマットを定義します。
STOMP は既に何年かのアクティブな利用実績があり多くのメッセージブローカーやクライアントライブラリによってサポートされています。
// WebSocket Client Example for Scala 2.11 with Netty 4 | |
// http://netty.io/4.0/xref/io/netty/example/http/websocketx/client/WebSocketClient.html | |
package org.koiroha.websocket | |
import io.netty.bootstrap.Bootstrap | |
import io.netty.buffer.Unpooled | |
import io.netty.channel.{Channel,ChannelFuture,ChannelHandlerContext,ChannelInitializer,ChannelPipeline,ChannelPromise,EventLoopGroup,SimpleChannelInboundHandler} | |
import io.netty.channel.nio.NioEventLoopGroup | |
import io.netty.channel.socket.SocketChannel | |
import io.netty.channel.socket.nio.NioSocketChannel |
// copy & paste to scala REPL | |
trait Mod { val name:String; val rarity:Int } | |
class HeatSink(val name:String, val effect:Double, val rarity:Int) extends Mod | |
case object CHS extends HeatSink("CHS", 0.3, 1) | |
case object RHS extends HeatSink("RHS", 0.5, 2) | |
case object VRHS extends HeatSink("VRHS", 0.7, 3) | |
val heatSink = Seq(CHS, RHS, VRHS) | |
class MultiHack(val name:String, val effect:Int, val rarity:Int) extends Mod |
import java.net.InetSocketAddress | |
import java.nio.ByteBuffer | |
import java.nio.channels.{ClosedSelectorException,DatagramChannel,SelectionKey,Selector} | |
import java.util.concurrent.atomic.{AtomicLong,LongAdder} | |
import java.util.concurrent.{LinkedBlockingQueue,BlockingQueue,Executors,TimeUnit} | |
class Competition(threadCount:Int, payloadSize:Int, directBuffer:Boolean) { | |
val buffer = if(directBuffer) ByteBuffer.allocateDirect(payloadSize) else ByteBuffer.allocate(payloadSize) | |
val channel = DatagramChannel.open() | |
var roundStart = System.nanoTime() |