タグ付けされた質問 「lisp」

この課題は、Lisp言語ファミリに関連しています。回答が特定の言語である必要がある課題は、一般的に推奨されていません。

30
文字列の長さを追加する
チャレンジ: s文字a- z、A- Z、0-の文字列を指定すると9、の長さsをそれ自体に追加し、長さの追加の文字をの全長の一部としてカウントしsます。 入力: 任意の長さの文字列(空にすることもできます)。 出力: 同じ文字列ですが、長さが末尾に追加されます。長さを表す文字も長さの一部としてカウントする必要があります。追加する有効な長さが複数ある場合は、可能な限り短いものを選択してください(例については、テストケースを参照してください)。 テストケース: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input can …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

1
マッカーシーのLISP
マッカーシーの1959 LISP 1959年初頭、ジョン・マッカーシーは、たった9つの原始関数を定義する画期的な論文を書きました。これらの関数は、まとめると、今日のすべてのLISPのような言語の基礎となります。論文はここからデジタル化して入手できます。 http://www-formal.stanford.edu/jmc/recursive.pdf 、機能である:あなたの仕事は完全に1960年論文に記載どおりにマッカーシーのLISPのためのパーサとインタプリタを実装することでQUOTE、ATOM、EQ、CAR、CDR、CONS、COND、LAMBDA、およびLABELすべての機能にする必要があります。答えの正しさを検討する際、このチャレンジテキストよりも論文が優先されますが、以下の9つの機能を要約してみました。言語はすべて大文字であり、エラーチェックは必要ないことに注意してください。すべての入力が有効であると仮定する必要があります。 タイプ McCarthyのLISPには、アトムと、リストまたはアトムである可能性のあるヘッドとして再帰的に定義されるリンクリスト、およびヘッドがアタッチされるリスト(テール)の2つのタイプしかありません。NILは、アトムとリストの両方であるという特別な特性を持っています。 論文によると、原子名は大文字、数字、スペース文字のみで構成されますが、連続するスペースの文字列は1つのスペースと見なされ、先頭と末尾のスペース文字はすべて削除されます。例同等の原子名(スペース文字とアンダースコアに置き換えます): ___ATOM__1__ = ATOM_1。同等でない原子名の例:A_TOM_1 != ATOM_1 リストは括弧で示されNIL、すべてのリストの最後に暗黙が示されます。リストの要素はコンマで区切られており、最新のLispのように空白ではありません。したがって、リスト(ATOM 1, (ATOM 2))はになります{[ATOM 1] -> {[ATOM 2] -> NIL} -> NIL}。 QUOTE: アトム(単一要素)またはリンクリストのいずれかである引数を1つ取ります。引数を正確に返します。 テストケース: (QUOTE, ATOM 1) -> ATOM 1 (QUOTE, (ATOM 1, ATOM 2)) -> (ATOM 1, ATOM 2) ATOM: アトム(単一要素)またはリンクリストのいずれかである引数を1つ取ります。T引数がアトムの場合(true)、または引数がアトムでない場合NIL(false)を返します。 テストケース: (ATOM, (QUOTE, ATOM …

9
文字列をひっかく
スナックされた文字列は次のようになります。 T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt あなたのタスク 文字列sとサイズをn取得し、スナックされた文字列を出力します。入力しThisIsAnExampleOfaSnakifiedString、3上記の例を生成します。 仕様書 s コードポイント33から126までのASCII文字のみが含まれます(スペースや改行は含まれません)。 s 長さは1〜100文字です。 n各出力文字列セグメントのサイズを表す整数です。「蛇」の曲線を構成する文字の各行(上/下または左/右)はn文字です。例については、テストケースを参照してください。 n 3〜10になります。 出力文字列は常に下向きになります。 各行の末尾のスペースは許可されます。 出力の最後にある末尾の改行も使用できます。 先行スペースは使用できません。 code-golfは、バイト単位の最短コードが勝つことを意味します。 テストケース a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf 4 …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

3
Tiny Lisp、小さな通訳
Lispプログラマーは、Lispは非常に小さなプリミティブ操作のセットから構築できる強力な言語であることを自慢しています。と呼ばれる方言の通訳をゴルフで練習して、そのアイデアを実践しましょうtinylisp。 言語仕様 この仕様では、結果が「未定義」と記述されている条件は、インタープリターで何でもできます:クラッシュ、サイレントフェール、ランダムgobbldegookの生成、または期待どおりの動作。Python 3のリファレンス実装はこちらから入手できます。 構文 tinylispでのトークンは(、)、または括弧やスペースを除く一個の以上の印刷可能なASCII文字の任意の文字列。(つまり、次の正規表現:[()]|[^() ]+。)数字のみで構成されるトークンは、整数リテラルです。(先頭のゼロは大丈夫です。)非数字を含むすべてのトークンは、のようにも、数字に見える例、シンボルである123abc、3.14と-10。トークンを区切る場合を除き、すべての空白(少なくとも、ASCII文字32および10を含む)は無視されます。 tinylispプログラムは一連の式で構成されています。各式は、整数、記号、またはs式(リスト)のいずれかです。リストは、括弧で囲まれた0個以上の式で構成されます。アイテム間にセパレータは使用されません。式の例を次に示します。 4 tinylisp!! () (c b a) (q ((1 2)(3 4))) 整形式でない式(特に、括弧が一致しない式)は、未定義の動作をもたらします。(参照実装は、開いているかっこを自動的に閉じ、一致しない閉じたかっこで解析を停止します。) データ型 tinylispのデータ型は、整数、記号、およびリストです。組み込み関数とマクロも型と見なすことができますが、出力形式は未定義です。リストには、任意のタイプの値をいくつでも含めることができ、任意の深さにネストできます。整数は、少なくとも-2 ^ 31〜2 ^ 31-1でサポートされる必要があります。 空のリスト(()nilとも呼ばれる)と整数0は、論理的に偽と見なされる唯一の値です。他のすべての整数、空でないリスト、ビルトイン、およびすべてのシンボルは論理的に真です。 評価 プログラム内の式は順番に評価され、それぞれの結果はstdoutに送信されます(出力のフォーマットについては後で説明します)。 整数リテラルはそれ自体に評価されます。 空のリスト()はそれ自体に評価されます。 1つ以上の項目のリストは、最初の項目を評価し、それを関数またはマクロとして扱い、残りの項目を引数として呼び出します。アイテムが関数/マクロでない場合、動作は未定義です。 シンボルは名前として評価され、現在の関数でその名前にバインドされた値を提供します。名前が現在の関数で定義されていない場合、グローバルスコープでバインドされた値に評価されます。名前が現在のスコープまたはグローバルスコープで定義されていない場合、結果は未定義です(参照実装ではエラーメッセージが表示され、nilが返されます)。 組み込み関数とマクロ tinylispには7つの組み込み関数があります。関数は、いくつかの操作を適用して結果を返す前に、各引数を評価します。 c-cons [truct list]。値とリストの2つの引数を取り、リストの先頭に値を追加して取得した新しいリストを返します。 h-頭(車、Lisp用語では)。リストを取得し、リストの最初の項目を返します。nilが指定されている場合はnilを返します。 t-テール(Lisp用語ではcdr)。リストを取得し、最初のアイテム以外のすべてを含む新しいリストを返します。nilが指定されている場合はnilを返します。 s-引く。2つの整数を取り、最初のマイナス2番目を返します。 l- 未満。2つの整数を取ります。最初の値が2番目の値より小さい場合は1を返し、それ以外の場合は0を返します。 e-等しい。同じタイプの2つの値(整数、両方のリスト、または両方のシンボル)を取ります。2つが等しい(またはすべての要素で同一)場合は1を返し、そうでない場合は0を返します。組み込みの等価性のテストは未定義です(参照実装は期待どおりに機能します)。 v-評価。式を表す1つのリスト、整数、またはシンボルを取り、それを評価します。たとえば、行うこと(v (q (c a b)))は行うことと同じ(c a b)です。(v …

1
Pyramid Schemeコードを生成する
Pyramid Schemeは@ ConorO'Brienによって開発されている言語です。Pyramid Schemeでは、作成するコードは次のようになります。 ^ ^ / \ /3\ / \ --- / + \ ^-------^ /9\ /3\ /123\ --- ----- さて、このコードには2つの明らかな性質があります。解析するのが難しく、書くのが難しいということです。Conorは最初の問題を解決しましたが、2番目の問題を解決するのはあなたの仕事です。 上記のコードは、PyramidSchemeインタープリターによって、次のようにネストされた文字列配列に処理されます。 [["+", ["9123", "3"]], "3"] あなたの仕事は、ネストされた文字列の配列を与え、再作成されたPyramidSchemeコードを出力または返すプログラムまたは関数を書くことです。入力配列は常に有効であると想定できます。 ピラミッドは二等辺三角形です。上部は、^斜めに離れると辺傾き、/及び\、下です-。下の2つの角は空であるか、引数である他のピラミッドの開始点を含んでいます。中央には、改行を無視してピラミッドの名前が表示されます。 パーサーがコードを使用可能な形式に変換する方法を次に示します。まず、最上位のピラミッドをスキャンします。引数をとらない場合、単一の文字列でそれを表し、先に進みます。それ以外の場合は、配列["name",[arg1,arg2]]またはとして表現され["name",[arg1]]ます。引数は、ピラミッドの左下および右下のピラミッドです。これは、上記の文字列または複数の配列のいずれかです。これはLispにやや似ていることに気付くかもしれません。その場合、言語名であるひどいしゃれに気づいたかもしれません。ピラミッドが完全に表示された後、パーサーは次のピラミッドに進みます。 これはcode-golfで、最短のコードが勝ちます! テストケース:これらは有効な出力だけではなく、有効な出力の例です。 [["+", ["9123", "3"]], "3"] ^ ^ / \ /3\ / \ --- / + \ ^-------^ /9\ /3\ …

30
ASCIIの三角形
あなたの仕事は、ASCII三角形を印刷するプログラムまたは関数を書くことです。次のようになります。 |\ | \ | \ ---- プログラムはn、制約付きの単一の数値入力を受け取ります0 <= n <= 1000。上記の三角形の値はでしたn=3。 ASCIIの三角形にはnバックスラッシュ(\)と垂直バー(|)、n+1行とダッシュ(-)があり、各行には最終的な行のほかに行番号(0から始まる、つまり最初の行は行0)と等しいスペースがあります。 。 例: 入力: 4 出力: |\ | \ | \ | \ ----- 入力: 0 出力: このテストケースでは、出力は空でなければなりません。空白なし。 入力: 1 出力: |\ -- 入力と出力は、私が指定したとおりでなければなりません。 これはcode-golfなので、できるだけ短いコードを目指してください!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

26
デジタル合計フィボナッチ
私たちは皆、フィボナッチ数列に精通しています: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 ただし、代わりに、前の2つのエントリのデジタル合計をf(n) = f(n-1) + f(n-2)取得します。 シーケンスは引き続きで始まる必要があり0, 1、その後、違いはすぐに明らかになります。このリストには0のインデックスが付いていますが、1のインデックスも使用できます。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

15
私の後に繰り返して!
引数として文字列を指定すると、重複しない最長の重複部分文字列の長さ、またはそのような文字列がない場合はゼロを出力します。 入力文字列が空ではないと仮定できます。 例 abcdefabc:部分文字列abcは位置1と7で繰り返されるため、プログラムは3を出力する必要があります abcabcabcabcab:abcabcまたはbcabcaまたはcabcab繰り返されるため、プログラムは6を出力します。(サブストリングabcabcabcabも繰り返されますが、オカレンスは重複するため、受け入れません)。 aaaaaaa:aaaたとえば、位置1と4で繰り返されるため、プログラムは3を出力します。 abcda:aが繰り返されるため、プログラムは1を出力します。 xyz:繰り返し文字列なし→ 0 ababcabcabcabcab:6を返す必要があります これはcode-golfなので、バイト数が最も少なくなります。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

8
Lisp抽出ミッション
Lispスタイルの言語では、リストは通常​​次のように定義されます。 (list 1 2 3) このチャレンジのために、すべてのリストには正の整数または他のリストのみが含まれます。またlist、最初はキーワードを省略するため、リストは次のようになります。 (1 2 3) を使用して、リストの最初の要素を取得できますcar。例えば: (car (1 2 3)) ==> 1 そして、最初の要素が削除された元のリストを取得できますcdr: (cdr (1 2 3)) ==> (2 3) 重要:cdrリストに単一の要素がある場合でも、常にリストを返します。 (cdr (1 2)) ==> (2) (car (cdr (1 2))) ==> 2 リストは、他のリスト内に含めることもできます。 (cdr (1 2 3 (4 5 6))) ==> (2 3 (4 5 6)) …

10
Clojureでのゴルフのヒント
Clojureを使用したコードゴルフのヒントは何ですか? この質問の目的は、Clojureに固有の技術のリストを収集し、一般的なコードゴルフの問題で使用できるようにすることです。
16 code-golf  tips  lisp 

9
ラケット/スキームでのゴルフのヒント
ラケット / スキームでゴルフをするための一般的なヒントは何ですか?私は、少なくともラケット/スキームに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(例えば、「コメントを削除する」は答えではありません)。 SchemeとRacket(以前のPLT Scheme)は技術的に異なる言語ですが、多くの点で非常に似ており、多くのコード(どちらかといえば)が意図したとおりに実行されることは承知しています。ヒントが前述の言語のいずれかにのみ適用される場合は、そのように注意してください。
15 code-golf  tips  lisp 

4
それはほとんどLispです!
チャレンジ あなたの課題は、Lispに似た言語用のインタープリターを設計することです。GLispのプログラムコードは、次の形式の括弧で示された任意の量のネストされた式で構成されます。 (func arg1 arg2 ...) インタプリタは、括弧、関数、および引数の前後に余分な空白文字を許可する必要があることに注意してください。 タイプ 整数、リスト、ブール、関数の4つのタイプを実装します。整数とブール値は、独自の構文を使用してソースコードに明示的に挿入できます。インタープリターは、一連の数字が整数を示すと想定する必要があります(負の整数を明示的に挿入する構文を実装する必要はありません)。また、インタープリターはtrue、falseブール値が指定されていると想定する必要があります。関数はユーザーが明示的に定義することはできず、常に単一の値(任意の長さのリストが単一の値としてカウントされます)を返します。 関数 以下の関数は実装する必要があり、形式はFunction、Arityです。Arityの前にnプラス記号が付いている場合、それは1 nつ以上の引数を示しています。特に指定されない限り、関数に与えられたすべての引数は同じ型であると仮定することができます。また、certian型に動作が指定されていない場合、その関数の引数はその型にはならないと想定することもできます。引数は、次の図のように参照されます。 (func argument1 argument2 ... argumentn) +、2 + すべての引数がInteger型の場合、引数の合計を返す必要があります すべての引数がList型の場合、引数の連結を昇順(arg1+arg2+ ...)で返す必要があります すべての引数のタイプがBooleanの場合、引数のすべての論理シーケンスを返す必要があります (+ 1 2 3 4 5) -> 15 (+ (list 1 2) (list 3 4)) -> (list 1 2 3 4) (+ true true true) -> true …

13
フィボナッチ製品
正のフィボナッチ数の一意の合計として、0より大きい数を分解できます。この質問では、可能な最大の正のフィボナッチ数を繰り返し減算することでこれを行います。例えば: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 ここで、フィボナッチ積を上記と同じリストと呼びますが、加算は乗算に置き換えられます。たとえば、f(100) = 89 * 8 * 3 = 2136。 正の整数nを指定して、その数のフィボナッチ積を返すプログラムまたは関数を作成します。 テストケース: 1: 1 2: 2 3: 3 4: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

5
Lispでのゴルフのヒント
Lisp(あらゆる方言)でゴルフをする上での一般的なヒントは何ですか?回答ごとに1つのヒントを投稿してください。Lispの方言に固有の回答のみ(たとえば、「コメントの削除」は回答ではありません)。 ヒントが適用されるLispの方言をヒントとともに投稿してください。
9 code-golf  tips  lisp 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.