Skip to content

Instantly share code, notes, and snippets.

View tanishiking's full-sized avatar
🤖

Rikito Taniguchi tanishiking

🤖
View GitHub Profile
scala> (1 to 10000000).filter(_ % 2 == 0).take(5)
// Range(1, 2, ...., 10000000) というコレクションを展開した上で
// 全てに対して filter などの処理がが行われるためメモリに大きな負担を与え
// 最終的に必要なのは前方5つだけなのに全体をなめるので処理にかなり時間がかかる.
scala> (1 to 10000000).view.filter(_ % 2 == 0).take(5).force
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(5, 10, 15, 20, 25)
// filter や take は遅延評価される
// force メソッドで正格なコレクションに戻すことができる.
object FibGen {
def main(args: Array[String]): Unit = {
fibGen.take(10).print
}
private[this] lazy val fibGen: Stream[Int] = 0 #:: 1 #:: fibGen.zip(fibGen.tail).map(n => n._1 + n._2)
}
object MyStream {
def main(args: Array[String]): Unit = {
range(1, 10).take(10).print
}
private[this] def range(start: Int, end: Int): Stream[Int] = {
if(start >= end) {
Stream.empty
} else {
object MyGenerator {
def main(args: Array[String]) = {
val g = myGenerator()
println(g()) // 1
println(g()) // 2
println(g()) // 3
}
private[this] def myGenerator(): (() => Int) = {
.hearty .icon-favorite:before {
content: "\1f363";
}
.hearty .is-favorite .icon-favorite:before {
content: "\1f37a";
}
<?php
function take($num, $iterable) {
$i = 0;
foreach($iterable as $key => $val) {
if($i >= $num) {
break;
} else{
$i++;
yield $key => $val;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
def f(x):
return x**3 + 2*x**2 + 10*x - 20
def df(x):
return 3*x**2 + 4*x + 10
DROP TABLE IF EXISTS result;
DROP TABLE IF EXISTS student;
DROP TABLE IF EXISTS subject;
CREATE TABLE student(
student_id INT NOT NULL,
name VARCHAR(256) NOT NULL,
prefecture VARCHAR(256) NOT NULL,
age INT NOT NULL,
PRIMARY KEY(student_id)
<?php
function fib_gen() {
list($a, $b) = [0, 1];
while(true) {
yield $a;
list($a, $b) = [$b, $a+$b];
}
}
<?php
function mygenerator() {
yield 0;
yield 1;
yield 2;
yield 3;
}
$g = mygenerator();