Difference between revisions of "Moses (日本語)"

(Created page with "{{#set:Name=Moses}} {{#set:LOVE Version=Any}} {{#set:Description=Lua による関数型プログラミング用の万能ベルトみたいな面白ライブラリです。}}...")
 
m
 
Line 5: Line 5:
 
'''Moses''' はユーティリティ・ライブラリであり一般的なプログラミング・タスクに対するショートカットの動作をする関数一式および、[http://en.wikipedia.org/wiki/Functional_programming 関数型プログラミング]への対応化を提供します。
 
'''Moses''' はユーティリティ・ライブラリであり一般的なプログラミング・タスクに対するショートカットの動作をする関数一式および、[http://en.wikipedia.org/wiki/Functional_programming 関数型プログラミング]への対応化を提供します。
 
Lua 内蔵のテーブル・ライブラリの拡張を目的としており、配列、
 
Lua 内蔵のテーブル・ライブラリの拡張を目的としており、配列、
リスト、コレクション、オブジェクトに対する操作の便利化、不思議な '''85''' 経路、異様で、奇怪で、半端な関数を提供します。
+
リスト、コレクション、オブジェクトに対する操作の便利化、不思議な '''85''' 通りの、異様で、奇怪で、半端な関数を提供します。
  
  

Latest revision as of 09:27, 24 September 2017



Moses はユーティリティ・ライブラリであり一般的なプログラミング・タスクに対するショートカットの動作をする関数一式および、関数型プログラミングへの対応化を提供します。 Lua 内蔵のテーブル・ライブラリの拡張を目的としており、配列、 リスト、コレクション、オブジェクトに対する操作の便利化、不思議な 85 通りの、異様で、奇怪で、半端な関数を提供します。


MosesUnderscore.js の影響を非常に強く受けました。


用例

local _ = require 'moses'
-- さあ楽しみましょう!

print('Creating an array of integers')
local array = _.range(0,12,3)
_.each(array,print)

print('Shuffles the array with a random seed')
array = _.shuffle(array, os.time())
_.each(array, print)

print('Slicing values between 2 and 5 keys')
array = _.slice(array,2,5)
_.each(array,print)

print('Count values by parity')
local parityCount = _.countBy(array,function(i,v)
  return v%2==0 and 'even' or 'odd'
end)
_.each(parityCount,print)

次のような出力になるでしょう:

-- 整数配列の作成
-- 1	0
-- 2	3
-- 3	6
-- 4	9
-- 5	12

-- 乱数の種により配列をかき混ぜます
-- 1	3
-- 2	0
-- 3	6
-- 4	12
-- 5	9

-- 2 から 5 まで間にあるキーの値を切り出します
-- 1	0
-- 2	6
-- 3	12
-- 4	9

-- 奇遇性により値を数えます
-- odd	1
-- even	3


GitHub から取得できます。

そのほかの言語