X



【プログラミング部】俺も「関数型言語」をやってみたい。JavaScriptをやれば良いのか? [479598771]
■ このスレッドは過去ログ倉庫に格納されています
0001番組の途中ですがアフィサイトへの転載は禁止です (オイコラミネオ MMb5-rxZ2)
垢版 |
2023/04/27(木) 18:21:12.50ID:JwJsrYGNM●?2BP(1000)

プログラミング言語「Scala 3.2.0」が公開、コンパイル時にテストカバレッジのデータを出力するように

https://codezine.jp/article/detail/16490

副作用を出さなければ良いんだろ?
0003番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ a9d2-zuZ3)
垢版 |
2023/04/27(木) 18:24:41.40ID:hS9EpA4F0
わかりやすいのがいいよ
0004番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 3d4c-TyxB)
垢版 |
2023/04/27(木) 18:26:53.48ID:zG7FtpwD0
は透ける
0006番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ 5d78-Wkkr)
垢版 |
2023/04/27(木) 18:28:05.35ID:Wz8QGvrv0?2BP(2000)

Pythonとかいうのがいいらしいぞ
0007番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ ea8f-a5QJ)
垢版 |
2023/04/27(木) 18:31:41.11ID:pu/rKYIQ0
関数型言語は触ったことないな
0008番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:35:43.15ID:BYCNzSJwa
import akka.actor.{Actor, ActorSystem, Props}

case class GeneratePrimes(n: Int)
case class PrimeResult(primes: Seq[Int])

class PrimeGenerator extends Actor {
def isPrime(n: Int): Boolean = !(2 until n).exists(n % _ == 0)

def receive = {
case GeneratePrimes(n) =>
val primes = (2 to n).filter(isPrime)
sender ! PrimeResult(primes)
}
}

object ComplexScalaProgram extends App {
val system = ActorSystem("PrimeGeneratorSystem")
val primeGenerator = system.actorOf(Props[PrimeGenerator], "primeGenerator")

import system.dispatcher
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.duration._
implicit val timeout = Timeout(5.seconds)

val future = primeGenerator ? GeneratePrimes(100)
future.map(println)
}
0009番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ b5af-i7lf)
垢版 |
2023/04/27(木) 18:38:24.50ID:jeErTzmN0
>>8
0010番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:39:00.52ID:BYCNzSJwa
import { useState, useEffect } from 'react';

function useLocalStorageState(key, defaultValue) {
const [state, setState] = useState(() => {
const value = localStorage.getItem(key);
return value ? JSON.parse(value) : defaultValue;
});

useEffect(() => {
localStorage.setItem(key, JSON.stringify(state));
}, [key, state]);

return [state, setState];
}

function App() {
const [value, setValue] = useLocalStorageState('myValue', '');

return (
<input
type="text"
value={value}
onChange={e => setValue(e.target.value)}
/>
);
}

export default App;
0013番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:41:18.05ID:BYCNzSJwa
from bisect import bisect_left

def longest_increasing_subsequence(arr):
if not arr:
return 0

tails = [arr[0]]

for x in arr[1:]:
if x > tails[-1]:
tails.append(x)
else:
tails[bisect_left(tails, x)] = x

return len(tails)

if __name__ == "__main__":
input_list = [10, 22, 9, 33, 21, 50, 41, 60, 80]
result = longest_increasing_subsequence(input_list)
print("Length of the Longest Increasing Subsequence:", result)
0014番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:43:15.91ID:BYCNzSJwa
>>11
Require Import List.
Import ListNotations.
Require Import Omega.
Require Import Recdef.
Require Import Permutation.

Section merge_sort.
Variable A : Type.
Variable leA : A -> A -> bool.

Fixpoint split (l : list A) : (list A * list A) :=
match l with
| [] => ([], [])
| [x] => ([x], [])
| x :: y :: tl => let (l1, l2) := split tl in (x :: l1, y :: l2)
end.

Function merge (l1 l2 : list A) {measure (fun l => length l) (l1 ++ l2)} : list A :=
match l1, l2 with
| [], _ => l2
| _, [] => l1
| x :: tl1, y :: tl2 => if leA x y then x :: merge tl1 l2 else y :: merge l1 tl2
end.
Proof.
all: intros; simpl; omega.
Defined.

Function merge_sort (l : list A) {measure length l} : list A :=
match l with
| [] => []
| [x] => [x]
| _ => let (l1, l2) := split l in merge (merge_sort l1) (merge_sort l2)
end.
Proof.
all: intros; try (apply split_length in teq0; omega).
Defined.

Theorem merge_permutation: forall l1 l2,
Permutation (l1 ++ l2) (merge l1 l2).

Theorem merge_sort_permutation: forall l,
Permutation l (merge_sort l).
0015番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:44:04.41ID:BYCNzSJwa
>>12
ケンモメンにマウントを取れてケンモメンがビビるようなコードをAIに作ってもらった
0016番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:46:42.29ID:BYCNzSJwa
>>4
{-# LANGUAGE RankNTypes #-}

import Data.Array
import Data.MemoTrie

newtype Fib a = Fib (forall r. Num r => (a -> r) -> (a -> r) -> a -> r)

fib :: Fib a -> a -> Integer
fib (Fib f) = f (const 0) (const 1)

instance HasTrie a => HasTrie (Fib a) where
newtype Fib a :->: b = FMT (MemoTrie ((->) a) ((->) a) :->: b)
trie f = FMT (trie (f . Fib))
untrie (FMT t) = untrie t . (\(Fib f) -> f)
enumerate (FMT t) = [(Fib f, b) | (f, b) <- enumerate t]

memoFib :: HasTrie a => Fib a -> Fib a
memoFib = memo

genericFib :: (HasTrie a, Num a) => a -> Integer
genericFib = fib (memoFib (Fib f))
where
f _ _ 0 = 0
f _ _ 1 = 1
f g h n = g (n - 1) + h (n - 2)

main :: IO ()
main = print $ genericFib (1000000 :: Integer)
0017番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 9ea2-yLKb)
垢版 |
2023/04/27(木) 18:47:48.57ID:SsQ7zOfh0
逆に関数型じゃないほうが珍しくないか?
0018番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 9a40-HzAZ)
垢版 |
2023/04/27(木) 18:48:23.80ID:sZG2bO0V0
>>4
参照透過の透けるを入れ込んだ名前になってるんだよな
0019番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 1586-vN4W)
垢版 |
2023/04/27(木) 18:48:41.80ID:pr55hZin0
>>1
情報が30年遅れの地方底辺大職員スレ
0020番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:48:43.11ID:BYCNzSJwa
>>5
type ('a, 'r) cont = ('a -> 'r) -> 'r

type 'a free = { run_free : 'r. ('a, 'r) cont -> 'r }

let return_free x = { run_free = (fun k -> k x) }

let bind_free m f = { run_free = (fun k -> m.run_free (fun x -> (f x).run_free k)) }

let lift_free x = { run_free = (fun k -> x k) }

let rec map_free f m = bind_free m (fun x -> return_free (f x))

let rec join_free mm = bind_free mm (fun x -> x)

let ( >>= ) = bind_free

let example_free =
let f x = return_free (x * 2) in
return_free 21 >>= f >>= f

let rec iter_free m =
m.run_free (function Some x -> Printf.printf "%d\n" x; iter_free (return_free x) | None -> ())

let () = iter_free example_free
0021番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 1586-vN4W)
垢版 |
2023/04/27(木) 18:50:38.21ID:pr55hZin0
 
 
 
この手のスレって
本業を28年間やっても成果の出なかった出涸らし大学職員が同じスレを何百回も立ててはコピペしてるだけだが、
まともな話は一個も出ないぞ

還暦間際にもなって30年前レベルの学部講義の後追いをする知恵遅れスレ
0022番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa21-A99V)
垢版 |
2023/04/27(木) 18:50:57.56ID:BYCNzSJwa
>>6
import time
from functools import wraps, lru_cache

def timer_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.perf_counter()
result = func(*args, **kwargs)
elapsed_time = time.perf_counter() - start_time
print(f"{func.__name__} took {elapsed_time:.4f} seconds to execute.")
return result
return wrapper

def memoize_decorator(maxsize=None):
def decorator(func):
cache = lru_cache(maxsize=maxsize)(func)
@wraps(func)
def wrapper(*args, **kwargs):
return cache(*args, **kwargs)
return wrapper
return decorator

@timer_decorator
@memoize_decorator(maxsize=100)
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)

if __name__ == "__main__":
n = 100
print(f"fibonacci({n}) = {fibonacci(n)}")
0023番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 1586-vN4W)
垢版 |
2023/04/27(木) 18:54:02.55ID:pr55hZin0
ちなみにこいつ>>1に英語で書かれたマニュアルや論文を説明させたり、簡単な数式の計算をさせると即座に発狂して狂った事を強弁し始めるから
知能がとてつもなく低い事はすぐバレる

還暦間際にもなって匿名掲示板で学部レベルの話をするやつってのは、医学部入学や医師資格試験に何回も落ちる例の名物人間のようなタイプの成れの果て
0024番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 1586-vN4W)
垢版 |
2023/04/27(木) 18:55:11.76ID:pr55hZin0
偏差四十九の職場ですら学術成果を出せなかった
落ちこぼれ職員専用コピペ埋め立てスレ
0030番組の途中ですがアフィサイトへの転載は禁止です (ワンミングク MM7a-Wu7S)
垢版 |
2023/04/27(木) 20:48:11.78ID:38ED4QRqM
haskellだろ
0032番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MM7a-4qd1)
垢版 |
2023/04/27(木) 23:54:11.61ID:b6acpxL0M
HaskellとC++の良いとこ取りをしたRustというプログラミング言語が最近急上昇でキテる
0033番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 798f-Svph)
垢版 |
2023/04/28(金) 00:14:34.63ID:YF7O6GDS0
Elmってどう?
0035番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ 7daf-+rDk)
垢版 |
2023/04/28(金) 09:13:29.70ID:gQlSm9a00
安倍晋三
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況